Crashlytics.getInstance() 返回 null 以记录自定义异常
Posted
技术标签:
【中文标题】Crashlytics.getInstance() 返回 null 以记录自定义异常【英文标题】:Crashlytics.getInstance() returns null for logging custom exceptions 【发布时间】: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 不,这在应用程序初始化后发生得很好 【参考方案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) 方法,它仍然会崩溃吗?以上是关于Crashlytics.getInstance() 返回 null 以记录自定义异常的主要内容,如果未能解决你的问题,请参考以下文章