自从从 Realm 0.83.1 升级到 0.85 或 0.89 后,我无法运行该应用程序。所以我被困在 0.83.1 版本。我在设备上运行时遇到这个奇怪的链接错误。我正在尝试加密数据库,但只有 0.85 或更高版本才完全支持它。任何帮助将不胜感激!
这是我的 Logcat 输出: 由以下原因引起:java.lang.UnsatisfiedLinkError:未找到 java.lang.String io.realm.internal.Util.nativeGetTablePrefix() 的实现 (试过 Java_io_realm_internal_Util_nativeGetTablePrefix 和 Java_io_realm_internal_Util_nativeGetTablePrefix__) 在 io.realm.internal.Util.nativeGetTablePrefix( native 方法) 在 io.realm.internal.Util.getTablePrefix(Util.java:47) 在 io.realm.internal.Table.(Table.java:38) 在 io.realm.RealmSchema.(RealmSchema.java:40) 在 io.realm.BaseRealm.(BaseRealm.java:78) 在 io.realm.Realm.(Realm.java:138) 在 io.realm.Realm.createAndValidate(Realm.java:269) 在 io.realm.Realm.createInstance(Realm.java:249) 在 io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:114) 在 io.realm.Realm.getDefaultInstance(Realm.java:195)
我尝试创建一个空项目,它似乎工作正常,但它不适用于我的真实项目。我怀疑 multi-dex 有问题,但我在装有 Android M 的手机上运行它,但同样失败了。
最佳答案
0.88.0 改变了添加 Realm 作为依赖的方式。所以不是:
- build.gradle(应用级别)
.
dependencies {
compile 'io.realm:realm-android:0.87.4'
}
你必须做的:
- build.gradle(应用级别)
.
apply-plugin: 'realm-android'
- build.gradle(项目级别)
.
buildscript {
dependencies {
classpath 'io.realm:realm-gradle-plugin:0.89.0'
}
}
关于android - Realm 0.89 导致 UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36782961/