在 Android 项目中使用 Realm 仅支持 armeabi

kis*_*idp 5 android realm android-ndk

我正在尝试使用领域。我设置了 build.gradle 并在应用程序启动时调用了 Realm.init(context)。

问题是,应用程序在启动时崩溃。

这是日志:

java.lang.RuntimeException: Unable to create application com.test.android com.getkeepsafe.relinker.MissingLibraryException: lib/armeabi/librealm-jni.so
                                                                         at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5406)
                                                                         at android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                                                                         at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                         at android.os.Looper.loop(Looper.java:154)
                                                                         at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                      Caused by: com.getkeepsafe.relinker.MissingLibraryException: lib/armeabi/librealm-jni.so
                                                                         at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:85)
                                                                         at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
                                                                         at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
                                                                         at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70)
                                                                         at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:57)
                                                                         at io.realm.internal.RealmCore.loadLibrary(RealmCore.java:59)
                                                                         at io.realm.Realm.init(Realm.java:187)
Run Code Online (Sandbox Code Playgroud)

该项目使用另一个仅支持armeabi. 这就是为什么我添加了 abiFilter

ndk { abiFilters "armeabi" }

在此处添加其他值将导致该库崩溃。

有没有办法只将 Realm 用于“armeabi”?

Deb*_*osh 8

我也遇到了同样的问题。刚刚通过将这个领域版本添加到项目级gradle来解决它 classpath 'io.realm:realm-gradle-plugin:6.0.0'

链接在这里


小智 5

解决了。

只是将 gradle 类路径更新为类路径“io.realm:realm-gradle-plugin:5.11.0”

 dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
    classpath 'com.google.gms:google-services:4.0.1'
    classpath "io.realm:realm-gradle-plugin:5.11.0"

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files`enter code here`


}
Run Code Online (Sandbox Code Playgroud)


Epi*_*rce 3

我认为你的问题是,自 Realm 2.0 以来,armeabi支持已被删除,并且只能armeabi-v7工作(阅读更改日志:)armeabi is not supported anymore

这里有一个跟踪问题。

但是,您仍然可以使用 Realm 1.2.0,它的效果也一样。您可以参考本指南了解 2.x 中的重大更改,以便您可以恢复该行为,否则它的工作原理完全相同。