关闭

Android 关于arm64-v8a、armeabi-v7a、armeabi、x86、x86_64下的so文件兼容问题

3223人阅读 评论(1) 收藏 举报
分类:

今天测试人员给出了一个bug:华为 Mate 8手机Android 6.0系统运行时,出现闪退的bug!开始以为是系统版本引起的问题,经测试小米4的Android 6.0系统不会复现该bug。经过一番排查,发现是arm64-v8a文件夹缺失对应的so库文件引起的BUG。现在许多三方的SDK都会提供编译好的so库文件,但是由于一些原因,有些SDK并没有提供对应标题所有目录的so库文件,而有的却提供的全面,比如百度的SDK就提供有标题列出的所有目录对应的so库文件。

如果你有两个文件夹armeabi和arm64-v8a,在armeabi里面有a.so 和 b.so,而在arm64-v8a里面只有a.so,那么arm64-v8a的手机在用到b的时候就会因为找不到b而报错了。由于arm64-v8a是向下兼容的,所以只需要删掉arm64-v8a文件夹,让手机自适应去查找armeabi的so库即可。但是这样并不能完全的做到完美的兼容,因此在使用JNI库的时候最好是拿到对应文件夹的so库文件。

之前在网上查找解决方法:将arm64中将arm64-v8a缺失的so拷贝至arm64-v8a中。经测试,该解决方法只适用某些so文件,并不能解决该问题,所以请猿类在解决的时候做好验证!!!

参考及姿势补给:
链接:http://www.zhihu.com/question/36893314/answer/78467097
链接:http://www.jianshu.com/p/cb05698a1968
链接:http://www.voidcn.com/blog/u013278099/article/p-4944290.html

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3283次
    • 积分:53
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论