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
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章