首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Android上调试RealmMigrationNeededException?

如何在Android上调试RealmMigrationNeededException?
EN

Stack Overflow用户
提问于 2016-03-31 10:14:11
回答 1查看 699关注 0票数 0

我在android项目中使用了一个领域数据库。

我在领域db中添加了一个新列,它是从CSV生成的,并在实体文件中这样做。

然而,如果我启动我的应用程序,尽管我以前已经卸载了它,我现在可以得到一个RealmMigrationNeededException。所以,如果我生成的数据库和实体文件不匹配的话。

我想知道是否有可能找出异常的确切原因。我在Android中获得的堆栈跟踪不包含任何可能帮助我解决问题的线索

代码语言:javascript
复制
FATAL EXCEPTION: main
Process: de.myCompany.myApp, PID: 5270
java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) } in de.myCompany.myApp.helper.WifiReceiver@2d683f50
     at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:872)
     at android.os.Handler.handleCallback(Handler.java:739)
     at android.os.Handler.dispatchMessage(Handler.java:95)
     at android.os.Looper.loop(Looper.java:135)
     at android.app.ActivityThread.main(ActivityThread.java:5254)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
Caused by: io.realm.exceptions.RealmMigrationNeededException: RealmMigration must be provided
     at io.realm.BaseRealm.migrateRealm(BaseRealm.java:589)
     at io.realm.Realm.migrateRealm(Realm.java:1224)
     at io.realm.Realm.migrateRealm(Realm.java:1213)
     at io.realm.Realm.createInstance(Realm.java:237)
     at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:114)
     at io.realm.Realm.getInstance(Realm.java:197)
     at de.myCompany.myApp.ImageDownloadController.fillDownloadStack(ImageDownloadController.java:94)
     at de.myCompany.myApp.ImageDownloadController.<init>(ImageDownloadController.java:37)
     at de.myCompany.myApp.ImageDownloadController.getInstance(ImageDownloadController.java:42)
     at de.myCompany.myApp.helper.WifiReceiver.onReceive(WifiReceiver.java:30)
     at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:862)
     at android.os.Handler.handleCallback(Handler.java:739) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5254) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)

除了尝试和错误之外,是否有任何正确的方法来调试RealmMigrationNeededException

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-01 14:15:28

如果发生RealmMigrationExceptionNeeded错误,王国将自动尝试触发任何已配置的迁移来修复它。如果不存在这样的RealmMigration,则会得到另一个覆盖底层原因的RealmMigrationNeededException

修复方法是提供一个虚拟的RealmMigration来查看真正的错误。

我明白为什么它会有点混乱,我们应该考虑抛出一个更好的异常消息,其中也包含了潜在的原因。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36330465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档