Собирайте и читайте отчеты об ошибках

Отчет об ошибках содержит журналы устройств, трассировки стека и другую диагностическую информацию, которая поможет вам найти и исправить ошибки в вашем приложении. Чтобы записать отчет об ошибке с вашего устройства, используйте параметр «Отправить отчет об ошибке разработчика» на устройстве, меню эмулятора Android или команду adb bugreport на компьютере разработчика.

Рисунок 1. Параметры разработчика на устройстве.

Чтобы отправить отчет об ошибке, на вашем устройстве должны быть включены параметры разработчика , чтобы получить доступ к опции «Отправить отчет об ошибке» .

Захват отчета об ошибке с устройства

Рисунок 2. Отчет об ошибке готов.

Чтобы получить отчет об ошибке прямо с вашего устройства, выполните следующие действия:

  1. Включите параметры разработчика .
  2. В разделе «Параметры разработчика» нажмите «Отправить отчет об ошибке» .
  3. Выберите тип отчета об ошибке и нажмите «Сообщить» .

    Через некоторое время вы получите уведомление о том, что отчет об ошибке готов, как показано на рисунке 2.

  4. Чтобы поделиться отчетом об ошибке, коснитесь уведомления.

Запишите отчет об ошибке из эмулятора Android.

В эмуляторе Android вы можете использовать функцию «Сообщить об ошибке» в расширенных элементах управления:

  1. Нажмите «Еще»в панели эмулятора.
  2. В окне «Расширенные элементы управления» выберите «Отчет об ошибке» .

    Откроется экран, на котором вы можете увидеть подробности отчета об ошибке, такие как снимок экрана, информацию о конфигурации AVD и журнал отчета об ошибках. Вы также можете ввести сообщение с этапами воспроизведения и сохранить его вместе с отчетом.

  3. Дождитесь завершения сбора отчета об ошибке, затем нажмите «Сохранить отчет» .

Запишите отчет об ошибке с помощью adb

Если у вас подключено только одно устройство, вы можете получить отчет об ошибке с помощью adb следующим образом:

$ adb bugreport E:\Reports\MyBugReports

Если вы не укажете путь к отчету об ошибке, он будет сохранен в локальном каталоге.

Если у вас подключено несколько устройств, вы должны указать устройство с опцией -s . Выполните следующие команды adb , чтобы получить серийный номер устройства и создать отчет об ошибке:

$ adb devices
List of devices attached
emulator-5554      device
8XV7N15C31003476 device

$ adb -s 8XV7N15C31003476 bugreport

Сохранить старый отчет об ошибке

По умолчанию отчеты об ошибках сохраняются в /bugreports , и их можно просмотреть с помощью следующей команды:

$ adb shell ls /bugreports/
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS-dumpstate_log-yyy.txt
bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip
dumpstate-stats.txt

Затем вы можете вытащить zip-файл через adb pull :

$ adb pull /bugreports/bugreport-foo-bar.xxx.YYYY-MM-DD-HH-MM-SS.zip

Проверьте ZIP-файл отчета об ошибке.

По умолчанию zip-файл называется bugreport- BUILD_ID - DATE .zip ZIP-файл может содержать несколько файлов, но наиболее важным является файл bugreport- BUILD_ID - DATE .txt . Это отчет об ошибке, который содержит диагностические данные для системных служб ( dumpsys ), журналы ошибок ( dumpstate ) и журналы системных сообщений ( logcat ). Системные сообщения включают трассировки стека, когда устройство выдает ошибку, и сообщения, записанные из всех приложений с классом Log .

ZIP-файл содержит файл метаданных version.txt , содержащий письмо о выпуске Android. Если systrace включена, zip-файл также содержит файл systrace.txt . Инструмент Systrace помогает анализировать производительность вашего приложения, фиксируя и отображая время выполнения процессов вашего приложения и других системных процессов Android.

Инструмент dumpstate копирует файлы из файловой системы устройства в zip-файл в папке FS , чтобы вы могли ссылаться на них. Например, файл /dirA/dirB/fileC на устройстве создаст запись FS/dirA/dirB/fileC в zip-файле.

Рисунок 3. Структура файла отчета об ошибке.

Дополнительную информацию см. в разделе Чтение отчетов об ошибках .

Получайте отчеты от ваших пользователей

Сбор отчетов об ошибках полезен, поскольку вы сами используете приложение, но ваши конечные пользователи не могут легко поделиться с вами такими отчетами об ошибках. Чтобы получать отчеты о сбоях с трассировкой стека от реальных пользователей, воспользуйтесь функциями отчетов о сбоях Google Play и Firebase.

Консоль Google Play

Вы можете получать отчеты из консоли Google Play для просмотра данных о сбоях и ошибках «приложение не отвечает» (ANR) от пользователей, которые установили ваше приложение из Google Play. Доступны данные за предыдущие шесть месяцев.

Дополнительную информацию см. в разделе «Просмотр сбоев и ошибок приложения, которые не отвечают (ANR)» в справке Play Console.

Отчеты о сбоях Firebase

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

Чтобы начать получать отчеты о сбоях от любого пользователя, добавьте зависимости Firebase в файл build.gradle . Дополнительную информацию см. в разделе Firebase Crashlytics .