2015-10-06 68 views
0

我創建並嘗試使用活動的android保存表,但由於某種原因該對象無法保存。我得到的錯誤是activeandroid中的mId是什麼以及它何時可以爲null?

java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference 

在調試反編譯Model.class文件我認爲,雖然執行以下語句

(請注意,下面的線是從反編譯Model.class發生異常Activeandroid的文件)

long entityId1 = ((Model)e).getId().longValue(); 

它失敗併發生上述異常。在catch塊中,我觀察到,對於所有非基元類型的字段,mId是非空的,但對於發生異常的字段,mId爲空。我試圖搜索網頁,但只能找到關於mId的一行。

ActiveAndroid automatically creates another auto-increment ID column. This is mId. 

那麼爲什麼它在這種情況下不這樣做。有人有想法嗎?謝謝 !!

回答

0

好的,我找到了答案。

從代碼路徑,我發現

的問題是,這是因爲ActiveAndroid需要您單獨保存 所有對象。例如,在保存推文之前,請確保首先保存關聯的用戶對象 。因此,在您撥打tweet.save() 之前,您有推文 引用用戶請務必使用user.save(),因爲存儲用戶需要設置本地ID並將其分配爲 推文的外鍵。

因此,我必須在保存對象之前先保存我的非基元類型對象字段。

相關問題