解決安卓打包apk安裝后打開閃退的問題

系統(tǒng)版本
Android Studio版本
Build APK方式生成APK

調(diào)試的時(shí)候好好的,將打完的包傳輸?shù)绞謾C(jī)上進(jìn)行安裝,安裝成功,但是一打開就閃退。

沒辦法,只好通過在命令行運(yùn)行adb logcat來抓取下log,發(fā)現(xiàn)閃退原因是:

com.getkeepsafe.relinker.MissingLibraryException: lib/armeabi/librealm-jni.so

這是因?yàn)槲页绦蚶镉玫搅薘ealm數(shù)據(jù)庫,看樣子使用這個(gè)數(shù)據(jù)庫有個(gè)大坑啊,沒辦法,只好各種google了

log截圖

因?yàn)樯婕暗絣ib庫,我還得從android的架構(gòu)看起,終于弄懂了lib/armeabi/是個(gè)什么鬼,簡單地說,這是為了支持那些特別特別老的手機(jī)用的庫,感謝下面這篇文章的講解

https://blog.csdn.net/u012400885/article/details/52923765

最終根據(jù)官方文檔找到了原因https://realm.io/docs/java/latest/#couldnt-load-librealm-jniso

意思是Android同時(shí)載入32位和64位的lib庫時(shí)會(huì)有問題,因此把64位的庫排除出去,在App的build.gradle中添加

//過濾掉不支持的平臺(tái)

? ? packagingOptions {

????????????exclude"lib/arm64-v8a/librealm-jni.so"

? ? }

注意一定不要多加,我看有的文章讓同時(shí)加上了exclude "lib/mips/librealm-jni.so"等等,這些加了反而會(huì)有問題。

重新編譯打包,安裝,一切OK!


今天在新手機(jī)上使用,還發(fā)現(xiàn)了一個(gè)問題,也是打開后遇到閃退,發(fā)現(xiàn)還是librealm庫的問題,重新找了下文章,發(fā)現(xiàn)這篇文章很有用Mixing 32- and 64-bit Dependencies in Android

最后編輯于
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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