Firebase Crashlytics 无法统计到崩溃日志的解决办法
1、确定集成无误
尝试任何其他方法之前,请确保已经成功集成了Crashlytics,你可以在控制台根据不同样式来判断是否集成成功。
2、UncaughtExceptionHandler
请检查你的项目中是否已经实现了自己的UncaughtExceptionHandler,如果有请去掉。
因为查看Crashlytics的源码,CrashlyticsUncaughtExceptionHandler 已经实现了该UncaughtExceptionHandler,代码如下:
class CrashlyticsUncaughtExceptionHandler implements UncaughtExceptionHandler{
...
}
然后在CrashlyticsController类中:
class CrashlyticsController {
...
void enableExceptionHandling(UncaughtExceptionHandler defaultHandler, boolean firebaseCrashlyticsClientFlag) {
this.openSession();
CrashListener crashListener = new CrashListener() {
public void onUncaughtException(SettingsDataProvider settingsDataProvider, Thread thread, Throwable ex, boolean firebaseCrashlyticsClientFlag) {
CrashlyticsController.this.handleUncaughtException(settingsDataProvider, thread, ex, firebaseCrashlyticsClientFlag);
}
};
this.crashHandler = new CrashlyticsUncaughtExceptionHandler(crashListener, new CrashlyticsController.DefaultSettingsDataProvider(), firebaseCrashlyticsClientFlag, defaultHandler);
Thread.setDefaultUncaughtExceptionHandler(this.crashHandler);
}
}
所以当我们使用Thread.setDefaultUncaughtExceptionHandler()的时候,设置了自定义的处理类,Crashlytics的就失效了,当然无法统计到崩溃信息!