为什么Realm在某些设备中只在新的RealmObject中创建了8个字段?

时间:2017-07-31 13:16:11

标签: android realm

我在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
 * ...

*/
}

1 个答案:

答案 0 :(得分:0)

我在应用程序部分的清单文件中添加了android:allowBackup="true",默认情况下也是如此。所以我将其更改为android:allowBackup="false"android:restoreAnyVersion="false",因此问题解决了。

更多解释
当我们向我们的应用程序授予allowBackup时,实际上我们对Android操作系统说“嘿Android,如果我卸载这个应用程序,在此之前备份它的共享偏好数据库和其他应用数据并将其丢弃 当我们重新安装应用程序时,Android会用旧的替换当前数据!