Android 引用第三方so文件加载报错
作者:陆金龙
发表时间:2018-10-02 11:30
问题分析
不同CPU架构的Android手机加载时会在libs下找自己对应的目录,从对应的目录下寻找需要的.so文件;如果没有对应的目录,就会去armeabi下去寻找。
如果已经有对应的目录,但是如果没有找到对应的.so文件,也不会去armeabi下去寻找了。 所以需要注意工程配置哪几个so文件目录,需要加载对应的so文件,不然会报错。
如果配置了 ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" },而只有armeabi下有so文件,遇到armeabi-v7a平台的手机,没有armeabi-v7a目录下的so文件就会加载报错。
解决方法
1.去掉以下配置,在main文件夹中新建jniLibs资源包
sourceSets {
main {
jniLibs.srcDirs = ['libs'] } }
2.去掉以下配置 ok了。
// ndk { // abiFilters "armeabi", "armeabi-v7a", "x86", "mips" // }