v8a 报so库无法找到

错误

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的文件夹,解决了问题。

你可能感兴趣的:(v8a 报so库无法找到)