Анализ крэшей

AppMetrica бесконфликтно работает с другими библиотеками, которые собирают и обрабатывают крэши. Если вы используете такие библиотеки, произведите инициализацию AppMetrica после установки данных библиотек.

Примечание

Символизация и деобфускация крэшей не производятся библиотекой. Данные операции выполняются на сервере или стороне клиента.

Для загрузки mapping-файлов в AppMetrica используется AppMetrica Gradle Plugin. Он автоматически загружает mapping и SO-файлы при сборке приложения. Подробнее в разделе Загрузка mapping-файлов и отладочных символов на Android.

Для автоматического сбора сведений об аварийных остановках приложения AppMetrica использует стандартный обработчик Thread.UncaughtExceptionHandler. Если вы используете обработчик аварийных остановок непосредственно в приложении, используйте следующий пример реализации корректной обработки данных:

val previousUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler()
// Creating a new handler.
val uncaughtExceptionHandler = Thread.UncaughtExceptionHandler { thread, exception ->
    try {
        // Put your logic here.
    } finally {
        // Sending a message about an app crash to the system handler.
        previousUncaughtExceptionHandler?.uncaughtException(thread, exception)
    }
}
// Setting the default handler.
Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler)
final Thread.UncaughtExceptionHandler previousUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
// Creating a new handler.
Thread.UncaughtExceptionHandler uncaughtExceptionHandler = new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(@NotNull Thread thread, @NotNull Throwable exception) {
        try {
            // Put your logic here.
        } finally {
            // Sending a message about an app crash to the system handler.
            if (previousUncaughtExceptionHandler != null) {
                previousUncaughtExceptionHandler.uncaughtException(thread, exception);
            }
        }
    }
};
// Setting the default handler.
Thread.setDefaultUncaughtExceptionHandler(uncaughtExceptionHandler);

Так вы, обработав исключение самостоятельно, передаете его дальше и AppMetrica сможет отправить сведения о нем.

Если вы хотите передать дополнительную информацию об аварийном отключении приложения, используйте данный пример до инициализации библиотеки в приложении.

Узнайте больше

Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.

Написать в службу поддержки