android64位機(jī)子兼容32位.so庫(kù)文件

    猴子在調(diào)用高德地圖的時(shí)候,遇到一個(gè)操作系統(tǒng)兼容問(wèn)題,異常堆棧說(shuō)是找不到so庫(kù)文件,猴子就不懂了,明明有他說(shuō)的那個(gè)文件。

    后來(lái)和同行交流,他們的jniLibs中有一個(gè)arm64-v8a的文件夾用來(lái)存放64位操作系統(tǒng)的so庫(kù)文件,于是猴子自己建了一個(gè)arm64-v8a文件夾,因?yàn)楦叩虏](méi)有把64位的so庫(kù)文件公布出來(lái),所以,猴子直接把他們唯一的so庫(kù)考到了arm64-v8a文件夾下。自以為這下就該好了,于是等待見(jiàn)證奇跡。奇跡果然發(fā)生了,爆出了那個(gè)so庫(kù)是32位而非64位的異常。猴子果斷蒙圈了。下載了高德的demo,看到她們的demo里面也只有armeabi這一個(gè)庫(kù)文件夾。這讓猴子感覺(jué)到,64位的操作系統(tǒng)可以兼容32位的庫(kù)文件。于是多方查找資料。終于在一家英文網(wǎng)站上找到了答案。

   解決方案也很簡(jiǎn)單,在build.gradle中加上,這句話的意思大概就是,告訴程序加載如下的so文件

defaultConfig {
......

ndk {
    abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}

}

這時(shí)會(huì)報(bào)錯(cuò),因?yàn)間radle的配置中,并不知道是否要做操作系統(tǒng)的兼容,這時(shí)只要在gradle.properties文件中加上

android.useDeprecatedNdk=true

就可以了。

運(yùn)行,終于能奇跡般地運(yùn)行起來(lái)了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容