缺少日志- 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.0apply 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);
    } 
});

虽然您可能无法理解它告诉您的所有内容,毕竟它是一个内部日志。