Crashlytics / Fabric initializationCallback не вызывается - PullRequest
0 голосов
/ 16 января 2019

Попытка реализовать два обработчика сбоев с помощью аварийных сбоев (как описано в Crashlytics Android SDK - настраиваемый UncaughtExceptionHandler ). Я не могу заставить intializationCalback работать - в Kotlin.У кого-то такая же проблема или что-то не так с моим кодом?(Чтобы уточнить: ни метод успеха, ни метод отказа никогда не вызываются, следовательно, новый обработчик UncaughtException также не выполняется)

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()
)

1 Ответ

0 голосов
/ 23 января 2019

Попробовал почти тот же код в моем классе приложения, но у меня это сработало, вызывался 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()
        )
        ...
    }
    ...
}

Проверьте это

  • Отметьте io.fabric.ApiKey в вашем AndroidManifest.xml
  • Проверьте, возвращает ли ваш contextProvider.invoke() соответствующий контекст
  • Попробуйте android.app.Application в качестве контекста и посмотрите, работает он или нет
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...