android报找不到so的错误

最近升级了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
    }
  }
}

可以将不需要的去掉,比如我就删掉红色的了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值