Получение отчета об ошибках и лога LogCat

Для решения проблем с мобильным приложением желательно узнать, что происходило в системе в момент возникновения ошибки. Это можно узнать из системного журнала — лога LogCat.

Способ получения записей в журнале зависит поставленной задачи и версии Android. Мы рассмотрим два популярных способа: получение отчета об ошибке и получение лога LogCat через ADB.


Разделы


Меню «Для разработчиков»


Для выполнения действий из этой статьи нужно получить доступ к меню «Для разработчиков»:

  1. Перейдите в настройки мобильного устройства и выберите пункт «О телефоне».
  2. Найдите информацию о номере сборки и нажмите не менее семи раз подряд на эту строку.

После этого в настройках устройства появится пункт «Для разработчиков».


Получение отчета об ошибке


Начиная с Android 9 и новее появилась возможность выгрузить отчет об ошибке с отправкой его по электронной почте, через мессенджеры или сохранением в память устройства.

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

Формируем отчет об ошибке:


  1. Перейдите в настройки мобильного устройства и выберите пункт «Для разработчиков».
  2. Найдите пункт «Отчет об ошибке» и нажмите на него.
  3. Появится запрос о детализации отчета — выбираем «Подробный отчет».
  4. После запроса отчета он будет формироваться некоторое время. По окончании формирования система покажет уведомление с предложением отправить отчет.
  5. Нажмите на уведомление и в стандартном окне отправки файлов выберите «Сохранить на диске».

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



Отправить подробный отчет


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


Получение лога LogCat через ADB


Если у вас в меню нет пункта «Отчет об ошибке» или требуется получить записи системного журнала — это можно сделать с помощью Android Debug Bridge, ADB.

Для этого понадобится телефон, USB кабель и компьютер.

Подключение устройства к компьютеру

Перед подключением устройства нужно разрешить в его настройках отладку по USB:

  1. Для этого переходим в меню «Для разработчиков» и ставим флажок в пункте «Отладка по USB».
  2. После включения отладки подключите устройство к компьютеру и на запрос системы Android о доверии к компьютеру ответьте «Доверять».


Загружаем и устанавливаем Minimal ADB

Minimal ADB можно загрузить по прямой ссылке с нашего сайта. Загрузить Minimal ADB 1.4.3, ZIP 1 Мб.

После загрузки распакуйте архив и запустите файл «minimal_adb_fastboot_v1.4.3_setup.exe». Для установки потребуются права администратора Windows. Можете установить с параметрами по умолчанию — это сэкономит ваше время.

Запуск записи лога

После установки будет запущена консоль Android Debug Bridge. В нем нужно ввести команду записи лога и нажать «Enter». Проверьте, что пользователь имеет право на запись в папку, куда будет сохранен файл. Или запустите ADB от имени администратора.


Если после установки консоль ADB не запустилась или вы ее закрыли, то всегда можно открыть ее с помощью ярлыка на рабочем столе «Minimal ADB and Fastboot». Посмотреть внешний вид ярлыка.


Команда для запуска записи лога
adb logcat -v threadtime > C:\LogCatOutput.txt


Запуск записи лога


Воспроизведение ошибки и окончание записи

После ввода команды, ADB будет записывать в указанный файл все события в системе Android. Чтобы зафиксировать ошибку, ее нужно воспроизвести еще раз.

Когда ошибка произошла, перейдите в консоль ABD и нажмите сочетание клавиш Ctrl+C — это остановить запись лог-файла.


Воспроизведение ошибки и окончание записи


Отправка файла


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

Пример записанного файла

Для примера мы разместили здесь несколько строк из записанного файла лога LogCat.


Пример содержимого лога
--------- beginning of system

10-29 17:32:33.148  1273  1273 D BatteryMeterView: ACTION_BATTERY_CHANGED : level:93 status:2 health:2

10-29 17:32:33.148  1273  1273 D BatteryMeterView: ACTION_BATTERY_CHANGED : level:93 status:2 health:2

10-29 17:32:33.158  1273  1273 D BatteryMeterView: ACTION_BATTERY_CHANGED : level:93 status:2 health:2

10-29 17:32:35.480   937  5931 D SSRM:n  : SIOP:: AP = 420, CUR = 460

10-29 17:32:40.675   937  1416 E Watchdog: !@Sync 284

10-29 17:32:43.177   937   972 D BatteryService: !@BatteryListener : batteryPropertiesChanged!

10-29 17:32:43.177   937   972 D BatteryService: level:93, scale:100, status:2, health:2, present:true, voltage: 4233, temperature: 295, technology: Li-ion, AC powered:false, USB powered:true, Wireless powered:false, icon:17303687, invalid charger:0

10-29 17:32:43.177   937   972 D BatteryService: online:4, current avg:460, charge type:1, power sharing:false, high voltage charger:false, capacity:280000, current_now:460

10-29 17:32:43.177   937   937 D BatteryService: Sending ACTION_BATTERY_CHANGED.

10-29 17:32:43.187   937   937 I MotionRecognitionService: Plugged

10-29 17:32:43.187   937   937 I MotionRecognitionService: setPowerConnected  = true

10-29 17:32:43.187  1273  1273 D STATUSBAR-PhoneStatusBar:  mBrightnessEnablebySettings = true mBrightnessEnablebyBattery = true mBrightnessEnablebyDisableFlag = true mPmsBrightnessEnablebySettings = true

10-29 17:32:43.208  1273  1273 D BatteryMeterView: ACTION_BATTERY_CHANGED : level:93 status:2 health:2

10-29 17:32:43.208  1273  1273 D BatteryMeterView: ACTION_BATTERY_CHANGED : level:93 status:2 health:2

10-29 17:32:43.208  1273  1273 D BatteryMeterView: ACTION_BATTERY_CHANGED : level:93 status:2 health:2

10-29 17:32:45.500   937  5931 D SSRM:n  : SIOP:: AP = 420, CUR = 460

10-29 17:32:55.550   937  5931 D SSRM:n  : SIOP:: AP = 420, CUR = 460

10-29 17:32:56.220   937  1182 V AlarmManager: waitForAlarm result :4

10-29 17:32:56.250   937  6291 D BatteryService: !@BatteryListener : batteryPropertiesChanged!