您的位置:首页 > 移动开发 > Android开发

android报找不到so的错误

2016-06-14 11:41 387 查看
最近升级了androidstudio到2.1.1之后,发现生成的apk在某些手机上运行不了,报的都是找不到对应so文件,可我仔细查看了下的确是生成了so文件,怎么会找不到呢。

在网上搜索,有人说是把targetSdkVersion降低到22或以下,试了没成功,有人说再增加个armeabi-v7a的目录,放入相同的so,这个试了之后发现的确某些手机能运行成功了,但有的手机还是不行,而且这样大大增加了apk包的大小。

一开始以为是不同android版本的问题,后来解压apk后发现lib下多了许多目录,像arm64-v8a,mips,x86等等,几乎包含了所有的架构,但实际只有armeabi里有对应的so包,其他的都没有,心想是不是跟手机的处理器有关,不同的处理器会查找不同的目录找到so,当找不到自然就报错了。

然后我就查了手机的cpu,发现64位的由于arm64-v8a下没有so,所以报错,而32位的由于armeabi下有对应的so,所以运行成功。

再参考了这篇文章,http://www.cnblogs.com/poe-blog/p/4728970.html。终于找到解决方案了:

android {
// rest of your app's logic
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi-v7a', 'armeabi'
universalApk false
}
}
}


可以将不需要的去掉,比如我就删掉红色的了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: