Firebase Crashlytics — Пользовательский UncaughtExceptionHandler

Мне нужно интегрировать Firebase Crashlytics в мой собственный UncaughtExceptionHandler. Я попробовал решение здесь, но я закончилось тем, что мой пользовательский обработчик не вызывался.

Это то, что я изначально должен был использовать свой собственный обработчик в моем MainActivity

Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));

Добавление Crashlytics.logException(exception) приведет только к нефатальной ошибке входа в систему, в то время как мне нужно регистрировать обычные ошибки. Примечание. Регистрация с помощью Crashlytics.logException(exception) пока сработала для меня только один раз, в то время как она не появлялась на панели управления много раз, хотя журнал в IDE показывал, что она была загружена, даже после следующего запуска приложения.

Мой главный вопрос: Могу ли я зарегистрировать обычный сбой и реализовать свой собственный UncaughtExceptionHandler?


person Abdul-Rahman Ahmad    schedule 10.04.2019    source источник


Ответы (1)


Fabric/Firebaser здесь - это вопрос, который определенно возникает, и можно реализовать свой собственный UncaughtExceptionHandler.

Когда вы инициализируете Crashlytics, он использует ваш UncaughtExceptionHandler по умолчанию. Что вы можете сделать, так это написать для него оболочку. Вы можете делать все, что хотите, с необработанным исключением, а затем передать свой обработчик в Crashlytics. Это может выглядеть так (псевдокод):

crashlyticsHandler = Thread.setDefaultUncaughtExceptionHandler()

myUncaughtExceptionHandler = new Thread.UncaughtExceptionHandler() {
    void uncaughtException(Throwable e) {
        //your code here
        crashlyticsHandler.uncaughtException(e)
    }
}

Thread.setDefault(myUncaughtExceptionHandler)
person Kevin Kokomani    schedule 12.11.2019