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的就失效了,當然無法統計到崩潰信息!