缺少日志- and/or 来自领域库的异常消息
missing log- and/or exception-messages from realm lib
我想知道是否有人曾在 领域[=33] 中看到过一些 日志行 或 异常消息 =] 数据库在他 app/project?
一些背景知识:我是领域的新手。所以有时我会犯一些错误(例如,试图在交易之外更新 DataModel extends RealmObject
)。当然这些东西是行不通的,但不幸的是我没有看到错误或我的错误的崩溃消息。在调试模式下,我可以越过我的错误并没有任何反应......
我已尝试使用 docu 中所述的 Crashlytics,但没有提交任何报告。
我正在使用:
io.realm:realm-gradle-plugin:1.1.0
和 apply plugin: 'realm-android'
- Android工作室
- 所有领域通信都发生在后台线程中(从不在 ui-/main-thread 上)
谢谢你的每一个提示。
您可能 运行 进入 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);
}
});
虽然您可能无法理解它告诉您的所有内容,毕竟它是一个内部日志。
我想知道是否有人曾在 领域[=33] 中看到过一些 日志行 或 异常消息 =] 数据库在他 app/project?
一些背景知识:我是领域的新手。所以有时我会犯一些错误(例如,试图在交易之外更新 DataModel extends RealmObject
)。当然这些东西是行不通的,但不幸的是我没有看到错误或我的错误的崩溃消息。在调试模式下,我可以越过我的错误并没有任何反应......
我已尝试使用 docu 中所述的 Crashlytics,但没有提交任何报告。
我正在使用:
io.realm:realm-gradle-plugin:1.1.0
和apply plugin: 'realm-android'
- Android工作室
- 所有领域通信都发生在后台线程中(从不在 ui-/main-thread 上)
谢谢你的每一个提示。
您可能 运行 进入 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);
}
});
虽然您可能无法理解它告诉您的所有内容,毕竟它是一个内部日志。