1. 程式人生 > >使用了realm 後包變大了的解決方法, 和64位庫問題。

使用了realm 後包變大了的解決方法, 和64位庫問題。

官方提供的辦法:

大部分情況下,在您 release 版本的 apk 檔案裡,Realm 只佔用 800KB 空間。我們釋出的版本支援的處理器架構包括 ARM7、ARMv7、ARM64、x86、MIPS。所以釋出的庫檔案本身看起來會稍微大一些。但安卓系統在安裝 apk 時只會安裝針對該裝置處理器架構的原生庫,安裝後佔用空間會比 apk 檔案本身還要小一些。

你可以通過將 APK 針對不同平臺分離打包以減少其大小。 新增如下程式碼到 build.gradle

splits {
    abi {
        enable true
        reset()
        include
'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips', 'x86', 'x86_64' } }

根據你設定的每個 ABI,會生成一個獨立 APK 檔案。

解決64位庫找不到的辦法。

如果你的 app 還包含其它原生庫,並且它們沒有提供對 arm64 平臺的支援,arm64 的安卓裝置在載入 Realm 的 librealm-jni.so 時可能會失敗。這是因為安卓無法同時載入32位和64位的原生庫。最佳解決方案是為所有原生庫提供 arm64 版本。但在你使用第三方閉源庫的時候這不太好實現。參考 VLC and Realm Library conflicts

一個解決方案是在編譯期通過配置 gradle 將 Realm 的 arm64 庫排除在外:

android {
    //...
    packagingOptions {
        exclude "lib/arm64-v8a/librealm-jni.so"
    }
    //...
}
都是官方解決方案。原文地址:https://realm.io/cn/docs/java/latest/#android-