首页 > 代码库 > 解决 .so文件64与32不兼容问题
解决 .so文件64与32不兼容问题
http://blog.csdn.net/vhawk/article/details/49964475
android64位机子兼容32位.so库文件
2016-11-25 19:39 5416人阅读 评论(13) 收藏 举报
版权声明:本文为博主原创文章,未经博主允许不得转载。
猴子在调用高德地图的时候,遇到一个操作系统兼容问题,异常堆栈说是找不到so库文件,猴子就不懂了,明明有他说的那个文件。
后来和同行交流,他们的jniLibs中有一个arm64-v8a的文件夹用来存放64位操作系统的so库文件,于是猴子自己建了一个arm64-v8a文件夹,因为高德并没有把64位的so库文件公布出来,所以,猴子直接把他们唯一的so库考到了arm64-v8a文件夹下。自以为这下就该好了,于是等待见证奇迹。奇迹果然发生了,爆出了那个so库是32位而非64位的异常。猴子果断蒙圈了。下载了高德的demo,看到她们的demo里面也只有armeabi这一个库文件夹。这让猴子感觉到,64位的操作系统可以兼容32位的库文件。于是多方查找资料。终于在一家英文网站上找到了答案。
解决方案也很简单,在build.gradle中加上,这句话的意思大概就是,告诉程序加载如下的so文件
Android.useDeprecatedNdk=true
就可以了。
运行,终于能奇迹般地运行起来了。
java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.lvshandian.partylive-1/lib/arm/libutility.so: has text relocations
解决办法:修改targetSdkVersion 至22
解决 .so文件64与32不兼容问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。