【问题标题】:Crashlytics.getInstance() returns null for logging custom exceptionsCrashlytics.getInstance() 返回 null 以记录自定义异常
【发布时间】:2017-05-07 04:18:31
【问题描述】:

我正在尝试按照doc 中的建议记录捕获的异常

在我的一项活动中:

@Override
public void failure(RetrofitError error) {                                              
    Crashlytics.getInstance().core.log(error.getMessage());
    Crashlytics.getInstance().core.logException(error.getCause());
}

但这再次导致 Fabric 仪表板出现致命异常:

致命异常:java.lang.NullPointerException 尝试从空对象引用上的字段“com.crashlytics.android.core.CrashlyticsCore com.crashlytics.android.Crashlytics.core”读取

我正在 AndroidApplication 中初始化 Fabric:

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build();
Fabric.with(this, new Answers(), new Beta(), core, new TwitterCore(authConfig), new Digits.Builder().build());

我是否需要为每个需要自定义日志记录的活动初始化 Fabric?

【问题讨论】:

  • 来自 Fabric 的 Mike。在 onCreate 中初始化 Fabric 应该是您需要做的所有事情。在 Fabric 完全初始化之前,您是否在 Retrofit Error 中记录了这些日志?
  • @MikeBonnell 不,这在应用程序初始化后发生得很好

标签: android crashlytics twitter-fabric google-fabric


【解决方案1】:

我的应用中有类似的设置。我像这样初始化 Crashlytics:

Crashlytics crashlyticsKit = new Crashlytics.Builder()
            .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
            .build();

    Fabric.with(this, crashlyticsKit);

但是我只是像这样使用 Crashlytics 日志方法:

if (!BuildConfig.DEBUG) {
    Crashlytics.log(message);
}

【讨论】:

  • 我的错误来自生产,所以!BuildConfig.DEBUG check 不会解决问题。 Crashlytics.getInstance() 仍然会返回 null
  • 不知道为什么如果您的应用程序子类已在清单文件中注册,为什么它会为空。如果您只使用 Crashlytics.log(message) 方法,它仍然会崩溃吗?
猜你喜欢
  • 2011-11-30
  • 2013-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-09
  • 2017-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多