解決 .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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM