【发布时间】:2018-04-22 01:33:21
【问题描述】:
在创建 RealmConfiguration 时,是否有与 Swift 中的 objectTypes 参数等效的 Java?https://realm.io/docs/swift/latest/api/Classes/Realm/Configuration.html
我正在移植一个 IOS 应用程序,该应用程序使用多个 Realm 数据存储区将只读应用程序数据与读/写用户数据分开,因此我需要指定哪些模型属于哪个领域以避免 RealmMigrationNeededException 找不到领域第一个领域的模型实际上属于第二个领域。
编辑:
好的,当我从 RealmObject 扩展一个要保存在第二个领域实例中的新模型 (TLGalleryItem) 时,会出现以下异常。如果我删除对模型的所有引用并删除从 RealmObject 继承的模型异常就会消失。一旦我从 RealmObject 扩展模型(在代码中仍然没有引用它)我得到这个:
04-23 08:43:35.603 26777-26777/com.(my project name).android.(my project name) E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.(my project name).android.(my project name), PID: 26777
java.lang.ExceptionInInitializerError
at com.(my project name).android.(my project name).activities.insightFinder.ThemesActivity.<init>(ThemesActivity.kt:23)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newActivity(Instrumentation.java:1173)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2708)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: io.realm.exceptions.RealmMigrationNeededException: Cannot open the read only Realm. 'TLGalleryItem' is missing.
at io.realm.Realm.<init>(Realm.java:179)
at io.realm.Realm.createInstance(Realm.java:435)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:342)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:282)
at io.realm.Realm.getInstance(Realm.java:364)
at com.(my project name).android.(my project name).data.DBService.<clinit>(DBService.kt:21)
at com.(my project name).android.(my project name).activities.insightFinder.ThemesActivity.<init>(ThemesActivity.kt:23)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newActivity(Instrumentation.java:1173)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2708)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
【问题讨论】: