2017-07-31 51 views
0

我在Android Studio中使用realm-java ver:3.5。 我有一個名爲Message的JAVA類擴展了RealmObject。它有9個領域與他們的getter和運行我的應用程序,它會崩潰Setter.In一些移動設備,並顯示在日誌中這樣的錯誤:爲什麼Realm在某些設備的新RealmObject中只創建8個字段?

場數爲小於預期 - 預計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

如果我做遷移這將是正確的。發生問題時,我卸載應用程序並再次安裝它! – saeid

+0

你如何重新安裝應用程序?您是否啓用了即時運行? – EpicPandaForce

回答

0

我已經在應用部分清單文件添加android:allowBackup="true",默認情況下它是真的too.So我把它改成android:allowBackup="false"android:restoreAnyVersion="false",所以我的問題就迎刃而解了。

更多的解釋
當我們授予allowBackup到我們的應用,實際上我們到Android OS說:「嘿Android的,如果我卸載此程序,在此之前需要備份,它是共享偏好數據庫和其他應用程序的數據,並把他們帶走。
當我們重新安裝應用程序,Android的與舊的替換當前的數據!

相關問題