我想知道是否有人在他的应用/项目中的领域数据库中看到了一些日志或异常消息?
一些背景:我是使用领域的新手。所以有时我会犯一些错误(例如,尝试更新事务外的DataModel extends RealmObject
)。当然这些东西不起作用,但不幸的是我没有看到错误或错误的崩溃信息。在调试模式下,我可以使用我的错误跳过线路,但没有任何反应......
我已尝试使用docu中所述的Crashlytics,但未提交任何报告。
我正在使用:
io.realm:realm-gradle-plugin:1.1.0
和apply plugin: 'realm-android'
感谢每一个提示。
答案 0 :(得分:2)
你可能遇到了在1.1.1中修复的this issue(使用insertOrUpdate()
没有检查事务状态),所以你应该更新到1.1.1。
值得注意的是,如果存在异常,您应该在后台线程上处理异常,如果存在则记录它们。
try {
// do blah
} catch(Throwable e) {
Log.e(TAG, "An error occurred", e);
throw e;
}
事实上,在后台线程上,你应该这样做
Realm realm = null;
try {
realm = Realm.getDefaultInstance();
// do blah
} catch(Throwable e) {
Log.e(TAG, "An error occurred", e);
throw e;
} finally {
if(realm != null) {
realm.close();
}
}
此外,如果您想收听Realm的日志(这将在2.0.0中突破),您可以提供RealmLog
实施。
io.realm.internal.log.RealmLog.add(new io.realm.internal.log.Logger() {
public void v(String message) {
Log.v("RealmLog", message);
}
public void v(String message, Throwable t) {
Log.v("RealmLog", message, t);
}
public void d(String message) {
Log.d("RealmLog", message);
}
public void d(String message, Throwable t) {
Log.d("RealmLog", message, t);
}
public void i(String message) {
Log.i("RealmLog", message);
}
public void i(String message, Throwable t) {
Log.i("RealmLog", message, t);
}
public void w(String message) {
Log.w("RealmLog", message);
}
public void w(String message, Throwable t) {
Log.w("RealmLog", message, t);
}
public void e(String message) {
Log.e("RealmLog", message);
}
public void e(String message, Throwable t) {
Log.e("RealmLog", message, t);
}
});
你可能听不懂它告诉你的一切,毕竟它是一个内部日志。