虹软人脸识别
最近我们发现很多用户在接入虹软ArcFace人脸识别SDK时,经常会遇到动态库加载失败的相关问题。本文详细介绍从编译动态库(.so)到程序调用so的整个流程,模拟在加载虹软人脸识别so文件时经常遇到的一些问题,帮助大家了解这些问题出现的原因以及解决方法。 一、 ArcFace库加载常见错误 1.1 找不到动态库 java.lang.UnsatisfiedLinkError: couldn't find "libarcsoft_face_engine.so" 原因: 在安装应用时,APK中指定的ABI目录下没有发现指定的动态库,寻找apk中动态库的规则详见 https://developer.android.google.cn/ndk/guides/abis?hl=en#aen 导致这个问题的间接原因很多,比如: Android工程中没有指定的动态库 Android工程中动态库存放位置错误 设备支持的最高ABI是armeabi-v7a,而apk只有arm64-v8a的动态库 解决方案: 确保被安装程序中包含的目标设备支持的ABI的动态库,可以解压APK检查动态库是否存在。 1.2 加载的动态库ABI不对 java.lang.UnsatisfiedLinkError: "libarcsoft_face_engine.so" is 32-bit instead of 64-bit 原因: