Al intentar implementar dos controladores de fallas con crashlytics (como se describe en Crashlytics Android SDK - custom UncaughtExceptionHandler ), no puedo hacer que la inicialización Calback funcione, en Kotlin. ¿Alguien tiene el mismo problema o hay algún problema con mi código? (Para aclarar: ni el método de éxito ni el de falla nunca se llaman, por lo tanto, el nuevo UncaughtException Handler tampoco se ejecuta)
val core = CrashlyticsCore.Builder() .build() Fabric.with( Fabric.Builder(contextProvider.invoke()).kits( Crashlytics.Builder() .core(core) .build() ).initializationCallback(object : InitializationCallback<Fabric> { override fun success(fabric: Fabric) { var mDefaultUEH = Thread.getDefaultUncaughtExceptionHandler() Thread.setDefaultUncaughtExceptionHandler { t, e -> Log.e("CrashLogger","Excpetion",e) mDefaultUEH.uncaughtException(t, e) } } override fun failure(e: Exception) { Log.e("CrashLogger", "Error during initialization ", e) } } ).build() )
Intenté casi el mismo código en mi clase de aplicación, pero funcionó para mí, se llamó a Success().
class MyApplication: MultiDexApplication() { override fun onCreate() { super.onCreate() val core = CrashlyticsCore.Builder() .build() Fabric.with( Fabric.Builder(this) .kits(Crashlytics.Builder().core(core).build()) .initializationCallback(object: InitializationCallback<Fabric> { override fun success(p0: Fabric?) { Timber.d("InitializationCallback success") } override fun failure(p0: Exception?) { Timber.d("InitializationCallback failure") } }) .build() ) ... } ... }
revisa estos
io.fabric.ApiKey
en su AndroidManifest.xml
contextProvider.invoke()
devuelve el contexto apropiadoandroid.app.Application
como contexto y vea si funciona o no