微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android - 某些用户的 RealmMigrationNeededException

如何解决Android - 某些用户的 RealmMigrationNeededException

我有一个拥有数百万用户的应用程序实现了 Realm。在需要更改数据库每次应用更新上,我们总是从大约 0.5% 的用户那里收到一些 crashlytics 报告。当然,我们在测试过程中永远不会遇到错误

错误总是以新添加的字段或表格的形式出现:

io.realm.exceptions.RealmMigrationNeededException: Migration is required due to the following errors: - Property 'Model.property' has been added.

迁移是以阶梯式的方式执行的,因此无论用户来自哪个应用版本,它都会执行所有必需的迁移,直到当前架构。

// Access the Realm schema in order to create,modify or delete classes and their fields.
final RealmSchema schema = realm.getSchema();

currentDbVersion = migrateVersion0(currentDbVersion,schema);

currentDbVersion = migrateVersion1(currentDbVersion,schema);

currentDbVersion = migrateVersion2(currentDbVersion,schema);

...

一旦发生错误用户将无法使用该应用,除非他清理或重新安装该应用。所以我的初始不过是以下之一:

  • 应用程序在启动过程中在另一个流中崩溃,数据库迁移未完成。但是当应用程序重新启动时,它现在认为它已经在最新的模式中,因此它不会执行任何迁移。

  • 应用在迁移之前以某种方式需要 Realm 实例...这可能吗?因为错误总是发生在 LoginScreen 中,而迁移应该发生在 Application.onCreate 中。

欢迎提出任何想法或解决方案。

编辑:如果相关,这似乎在旧版本的 android 中发生得更多:

Crashlytics

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。