我在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
* ...
*/
}
答案 0 :(得分:0)
我在应用程序部分的清单文件中添加了android:allowBackup="true"
,默认情况下也是如此。所以我将其更改为android:allowBackup="false"
和android:restoreAnyVersion="false"
,因此问题解决了。
更多解释
当我们向我们的应用程序授予allowBackup
时,实际上我们对Android操作系统说“嘿Android,如果我卸载这个应用程序,在此之前备份它的共享偏好,数据库和其他应用数据并将其丢弃
当我们重新安装应用程序时,Android会用旧的替换当前数据!