解决 .so文件64与32不兼容问题

http://blog.csdn.net/vhawk/article/details/49964475

 

 

android64位机子兼容32位.so库文件

        猴子在调用高德地图的时候,遇到一个操作系统兼容问题,异常堆栈说是找不到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

 

posted @   张亚楠  阅读(5113)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示