1.先说下报的错
大概意思就是arm64-v8a文件夹下找不到libarcsoft_face_engine.so这个库,(这个库是虹软人脸识别2.0)
2.分析原因
百度了下,大概原因:arm64-v8a是可以向下兼容的,但前提是你的项目里面没有arm64-v8a的文件夹,如果你有两个文件夹armeabi和arm64-v8a,两个文件夹,armeabi里面有a.so 和 b.so,arm64-v8a里面只有a.so,那么arm64-v8a的手机在用到b的时候发现有arm64-v8a的文件夹,发现里面没有b.so,就报错了,所以这个时候删掉arm64-v8a文件夹,这个时候手机发现没有适配arm64-v8a,就会直接去找armeabi的so库,所以要么你别加arm64-v8a,要么armeabi里面有的so库,arm64-v8a里面也必须有
3.解决方法
网上找了各种方法好像都不行,如删除arm64-v8a文件夹,仍然报错,可能是因为用的其他的library,里面包含arm64-v8a
既然没办法删除,那有没办法直接指定系统用什么so架构呢?
答案是可以的:
android {
...
defaultConfig {
...
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
}
}
就是在项目build.gradle里面,加上
ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" }
发现竟然不报错了,O(∩_∩)O哈哈~