【发布时间】:2017-07-31 13:16:11
【问题描述】:
我在 Android Studio 中使用 realm-java ver:3.5。 我有一个名为 Message 的 JAVA 类,它扩展了 RealmObject。它有 9 个字段及其 Getter 和 Setter。在某些移动设备中,当我运行我的应用程序时,它会崩溃并且此错误会出现在日志中:
字段数少于预期 - 预期为 9,但为 8
我找到了哪个字段没有创建,所以我在类中更改了它的名称、类型和顺序并重新运行了应用程序,但所有结果都是一样的。
最后我添加了一个新的字段else.Realm又只创建了8个字段!!
为什么 Realm 不能正确创建我的 RealmObject?
public class Message extends RealmObject {
@PrimaryKey
private long commandId;
private Integer id;
@Required
private Long initTimeStamp;
@Required
private String messageText;
private User sender;
private User receiver;
private MyDateTime sendDate;
private MyDateTime readDate;
@Required
private Integer messageStatus = STATUS_NEW;
public Message() {
}
/*
* all setters and getters
* ...
*/
}
【问题讨论】:
-
你在做架构迁移吗?
-
如果我进行迁移,它将是正确的。当我卸载应用程序并重新安装时会出现问题!
-
如何重新安装应用程序?您是否启用了即时运行?
-
否,即时运行已关闭。刚才我用 .deleteRealmIfMigrationNeeded() 替换 .migration(new Migration()) 并解决了问题。我认为旧领域数据库未正确从设备中删除。