Отчет об ошибках содержит журналы устройств, трассировки стека и другую диагностическую информацию, которая поможет вам найти и исправить ошибки в вашем приложении. Чтобы записать отчет об ошибке с вашего устройства, используйте опцию «Отправить отчет об ошибке разработчика» на устройстве, меню эмулятора Android или команду adb bugreport
на вашем компьютере разработки.
![](https://developer.android.google.cn/static/studio/images/run/dev-options-pixel_2x_cropped.png?authuser=0&hl=ru)
Рисунок 1. Параметры разработчика на устройстве.
Чтобы отправить отчет об ошибке, на вашем устройстве должны быть включены параметры разработчика , чтобы получить доступ к опции «Отправить отчет об ошибке» .
Захват отчета об ошибке с устройства
![](https://developer.android.google.cn/static/studio/images/run/dev-options-take-bug-report_2x.png?authuser=0&hl=ru)
Рисунок 2. Отчет об ошибке готов.
Чтобы получить отчет об ошибке прямо с вашего устройства, выполните следующие действия:
- Включите параметры разработчика .
- В разделе «Параметры разработчика» нажмите «Отправить отчет об ошибке» .
- Выберите тип отчета об ошибке и нажмите «Сообщить» .
Через некоторое время вы получите уведомление о том, что отчет об ошибке готов, как показано на рисунке 2.
- Чтобы поделиться отчетом об ошибке, коснитесь уведомления.
Запишите отчет об ошибке из эмулятора Android.
В эмуляторе Android вы можете использовать функцию «Сообщить об ошибке» в расширенных элементах управления:
- Нажмите «Еще»
в панели эмулятора.
В окне «Расширенные элементы управления» выберите «Отчет об ошибке» .
Откроется экран, на котором вы можете увидеть подробную информацию об отчете об ошибке, например снимок экрана, информацию о конфигурации AVD и журнал отчета об ошибках. Вы также можете ввести сообщение с этапами воспроизведения и сохранить его вместе с отчетом.
Дождитесь завершения сбора отчета об ошибке, затем нажмите «Сохранить отчет» .
Запишите отчет об ошибке с помощью 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 .