前一段时间,使用了一个第三方的库。大家应该很清楚,配置下就ok,jar包会自动下。
例如使用android-gif-drawable
dependencies {
compile filetree(dir: 'libs',include: ['*.jar'])
compile 'pl.droidsonroids.gif:android-gif-drawable:1.1.15'
}
使用了之后测试下效果,突然发现在有些手机上爆XXX.so找不到。xxx.so使我们项目中自己编译的一些so。为了减小apk大小,我们编译的so仅仅只编译了armeabi。这就出问题了。
因为dependencies 引用的库,如果包含jni,默认库文件是全平台的(armeabi,armeabi-v7a,x86等等),这就导致安装好的apk会按照平台的适配到指定目录下查找so文件。例如x86平台的就会去x86目录下查找了,之前的只包含的armeabi的so,就会找不到了。
解决办法:
defaultConfig {
......
ndk {
abiFilters "armeabi"//限定平台
}
multiDexEnabled true
}
希望大家在引用第三方的包含jni的库的时候,能够注意下
原文地址:https://www.jb51.cc/javaschema/283907.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。