缺少来自realm lib的日志和/或异常消息

时间:2016-08-10 11:42:05

标签: android realm error-logging

我想知道是否有人在他的应用/项目中的领域数据库中看到了一些日志异常消息

一些背景:我是使用领域的新手。所以有时我会犯一些错误(例如,尝试更新事务外的DataModel extends RealmObject)。当然这些东西不起作用,但不幸的是我没有看到错误或错误的崩溃信息。在调试模式下,我可以使用我的错误跳过线路,但没有任何反应......

我已尝试使用docu中所述的Crashlytics,但未提交任何报告。

我正在使用:

  • io.realm:realm-gradle-plugin:1.1.0apply plugin: 'realm-android'
  • Android Studio
  • 所有领域的通信都发生在后台线程中(从不在ui- /主线程上)

感谢每一个提示。

1 个答案:

答案 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);
    } 
});

你可能听不懂它告诉你的一切,毕竟它是一个内部日志。