Android RealmMigration 问题 - 未应用迁移但仍在进行 io.realm.exceptions.RealmMigrationNeededException

Android RealmMigration issue - Migration not applied and still getting io.realm.exceptions.RealmMigrationNeededException

我在使用 Realm 时遇到问题,当我更新我的新 APK 时应用程序在启动时崩溃。

Caused by: io.realm.exceptions.RealmMigrationNeededException: Migration is required due to the following errors:
    - Property 'TransactionData.retriedOnExpired' has been made required.

RealmMigration class 添加该列时有行,如果我添加断点,我可以看到代码被成功调用。但是,在调用 Realm.getDefaultInstance() 后应用程序仍然崩溃。

因此即使执行了迁移代码,RealmDatabase 也没有检测到迁移。

问题是如果 RealmMigration 助手在 Java 中,kotlin 布尔值 类 必须声明为 boolean.class 而不是 Boolean.class

如果 属性 被声明为不可为 null 的布尔值 (kotlin),那么 Realm 将期望设置 FieldAttribute.REQUIRED 标志。