【Android】导入第三方库时,关于so文件的一些思考
来源:互联网 发布:mac手机铃声 编辑:程序博客网 时间:2024/05/29 04:00
测试手机:红米note3
手机abi:arm64-v8a
首先问题的起源于异常如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
在此之前,库的目录(so部分)如下:
出现问题的原因是 在上图的arm64-v8a中没有找到libxxxx_4_1.so。不过实际,也真的没有这个文件,第三方都未提供64位的版本,而针对库的支持有如下规则(如有纰漏,欢迎评论指正):
64手机支持32库、64库
32手机支持32库
即理论上仅提供32位的库,就可以满足支持。所以我试着将目录arm64-v8a删除,但是之后运行,错误依旧在。
好,我就来看看这个错误。这个异常很明显是说,系统试图从nativeLibraryDirectories中加载指定的so文件,但没找到。我原先的想法,如果arm64-v8a中找不到,系统应该到armeabi中去找,毕竟armeabi是个缺省的so目录。但实际结果貌似不会去armeabi中查到。
但是奇怪的是,删除arm64-v8a目录之后,运行也出错。按照简单理解,arm64-v8a目录已经没有了,应该不会在从arm64目录中找so才是。除非,系统根据手机abi指定目录加载,然而实际不是。
至此要感谢合作方(@范淋)的帮助找到了这个资源,system-loadlibrary-couldnt-find-native-library-in-my-case,主要信息如下图:
他的说法中有建议直接打开(解压缩的形式)生成的apk文件,查看是否有”不合理”的目录存在。在我的情况中的确看到了arm64-v8a目录。目录中有一个其他第三方的so文件,最后问题由于依赖项目有个arm64-v8a目录,所以如果要移除某个类目,一定要删干净。
从原则来讲,只要提供armeabi和armeabi-v7a 就可以满足兼容支持,但是如果能提供完整的64位版本,可以更好的利用该架构的芯片,得到更高性能。
原文地址:http://blog.csdn.net/u011511368/article/details/51451121
- 【Android】导入第三方库时,关于so文件的一些思考
- 【Android】导入第三方库时,关于so文件的一些思考
- 关于Android的.so文件导入问题
- Android Studio 关于so文件导入的若干方案
- 关于Android Studio导入第三方.so库,找不到so库以及找不到so库中方法的问题
- 关于android 导入第三方.so库文件在低版本Android手机上正常使用,在5.0版本的手机上就出现闪退
- android 应用导入第三方jar、so文件
- Android 导入so文件
- 关于Android的.so文件
- 关于Android的.so文件
- 关于android studio导入jar包以及使用so库的一些心得w
- android-studio导入-so文件的方法
- 关于Android的.so文件---多个第三方库加载到工程读取不到.so的解决办法
- 关于Android的.so文件---多个第三方库加载到工程读取不到.so的解决办法
- Android Studio导入第三方类库的方法( jar包、so文件、zip包等资源文件引入)
- 关于Android studio导入so库文件失败
- 关于sessions.ser文件的一些思考
- 关于python导入模块和package的一些深度思考
- 学历是铜牌,能力是银牌,人脉是金牌,思维是王牌(感触很深)
- 【框架基础】:Java反射机制详解(二)
- svn提交时报错: The working copy needs to be upgraded svn: Working copy 'E:\java\MyEclipse\Workspaces\fram
- 第二期 AOSP 环境搭建、下载和编译 《手机就是开发板》
- Android之数据统计TalkingData集成
- 【Android】导入第三方库时,关于so文件的一些思考
- IPC之Messenger
- NULL, '\0',0 '0'的区别
- fiddler4 测试Web接口
- 前端编程中,如何消除浏览器缓存
- Unity3D Shader 新手教程(1/6)
- codeforces round 345 div2 Image Interview 贪心 + 二分
- 请不要做一个浮躁的嵌入式工程师
- C# 第14章 上机3,4,5