当前位置: 代码迷 >> 综合 >> Firebase Crashlytics集成后无法收集日志
  详细解决方案

Firebase Crashlytics集成后无法收集日志

热度:32   发布时间:2024-01-30 10:16:01.0

android 中通过Thread.UncaughtExceptionHandler用于处理未捕获的异常导致程序崩溃。

firebase crashlytics也是基于该方法实现捕获异常。

集成firebase crashlytics无法收集日志原因:

1、项目由于项目需求,需要捕获应用异常进行相应的处理。然后在Application的onCreate()生命周期方法中进行设置。

然而现在firebase sdk都是使用provider进行sdk的初始化。由于provider和生命周期和Application类似(详细查考provider的架加载原理),导致如果自己在Application 的onCreateI()方法中进行设置,就会把Firebase中的进行重新初始化。导致firebase无法收集到异常崩溃日志。

解决方案:

a、删除掉项目中自己对异常日志收集的处理。

b、将自己设置的异常处理,移动到Application 的attachBaseContext(Context context)中做处理。

 

为什么这样设置后,firebase和自己设置的异常处理都可以工作?

参看firebase初始化代码。

【firebase会获取app设置的Thread.UncaughtExceptionHandler异常的实例对象,firebase新建一个异常实例进行初始化,当有异常发生时,使用获取的项目设置的异常实例对象,调用其方法】