Realm(Java)數據庫使用文檔(測試與調試)


Realm(Java)數據庫使用文檔(目錄)

有關如何將Realm與JUnit 3,JUnit4,Robolectric,Mockito和PowerMock結合的信息,請參見unitTest示例

15.1 Android Studio調試

使用Android Studio或IntelliJ時,需要注意一個小“陷阱”:調試器會根據您使用的調試視圖提供誤導性的值。

例如,在Android Studio中的RealmObject上添加手錶將顯示字段的值。不幸的是,這些值是錯誤的,因爲未使用字段值。Realm在幕後創建一個代理對象,並覆蓋getter和setter以便訪問Realm中的持久數據。爲任何訪問器添加觀察點將產生正確的值。見下圖:

image

在上圖中,調試器已在第113行停止。有三個監視值,person變量以及person.getName和person.getAge訪問器。從第107行到第111行的代碼通過更改名稱和年齡來更改人員實例。然後,這些值將保留在事務中。在調試器當前暫停的第113行上,人員監視實例正在報告字段值,並且它們不正確。將訪問器用於person.getName和person.getAge的監視值報告正確的值。

請注意,.toString方法將輸出正確的值,但“監視”面板將不輸出(當監視作爲RealmObject的變量時)。

15.2 NDK調試

Realm是一個包含本機代碼的庫。我們建議您使用崩潰報告工具(例如Crashlytics)來跟蹤本機錯誤,以便在出現問題時可以更好地爲您提供幫助。

NDK崩潰調試通常很麻煩,因爲默認堆棧跟蹤提供的可用信息很少。Crashlytics將使您能夠捕獲有價值的NDK故障信息。要在Crashlytics中啓用NDK故障報告,請按照本指南中概述的步驟進行。

要爲您的項目啓用NDK崩潰報告,請將其添加到build.gradle文件的根目錄中。請注意,不需要androidNdkOut和androidNdkLibsOut值。

crashlytics {
  enableNdk true
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章