错误
couldn't find "***.so"
原因
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与armeabi两个文件夹只能留其一;或者都把a.so和b.so放在两个文件夹下面
我的情况
我的情况是依赖了fresco,fresco会自动生成v8a的文件夹,导致无法找到so。
在buildgradle文件的android标签下加入
splits {
abi {
enable true
reset()
include 'armeabi-v7a'
universalApk false
}
}
让fresco只生成v7a的文件夹,解决了问题。