Как получить данные о сбое из моего приложения Android? - PullRequest
712 голосов
/ 02 марта 2009

Как я могу получить данные о сбоях (по крайней мере, следы стека) из моего приложения для Android? По крайней мере, при работе с моим собственным устройством, полученным по кабелю, но в идеале из любого экземпляра моего приложения, работающего на дикой природе, чтобы я мог улучшить его и сделать его более надежным.

Ответы [ 30 ]

3 голосов
/ 03 февраля 2016

Я нашел еще одно замечательное веб-приложение для отслеживания сообщений об ошибках.

https://mint.splunk.com/

Небольшое количество шагов для настройки.

  1. Войдите или зарегистрируйтесь и настройте по ссылке выше. Как только вы закончите создание приложения, они предоставят строку для настройки, как показано ниже.
Mint.initAndStartSession(YourActivity.this, "api_key");
  1. Добавьте следующее в build.gradl приложения.
android {
...
    repositories {
        maven { url "https://mint.splunk.com/gradle/"}
    }
...
}

dependencies {
...
    compile "com.splunk.mint:mint:4.4.0"
...
}
  1. Добавьте код, который мы скопировали выше, и добавьте его к каждому виду деятельности.

    Mint.initAndStartSession (YourActivity.this, "api_key");

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

Надеюсь, это кому-нибудь поможет.

3 голосов
/ 09 марта 2013

Если вы хотите получить ответы сразу, вы можете использовать logcat

$adb shell logcat -f /sdcard/logoutput.txt *:E

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

$adb shell logcat -c

Затем попробуйте запустить приложение и снова войти в систему.

2 голосов
/ 05 ноября 2013

Для службы альтернативного оповещения о сбоях / отслеживания исключений проверьте Raygun.io - в ней есть куча приятной логики для обработки сбоев Android, включая приличный пользовательский опыт при подключении его к вашему приложению (две строки кода в вашей основной деятельности и нескольких строк XML, вставленных в AndroidManifest).

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

Отказ от ответственности: я создал провайдер Android:)

1 голос
/ 12 февраля 2013

Только что начали использовать ACRA https://github.com/ACRA/acra, используя Google Forms в качестве бэкэнда, и его очень легко настроить и использовать, это по умолчанию.

НО Отправка отчетов в формы Google устареет (затем будет удалена): https://plus.google.com/118444843928759726538/posts/GTTgsrEQdN6 https://github.com/ACRA/acra/wiki/Notice-on-Google-Form-Spreadsheet-usage

В любом случае, возможно определить вашего собственного отправителя https://github.com/ACRA/acra/wiki/AdvancedUsage#wiki-Implementing_your_own_sender например, вы можете попробовать отправить электронное письмо отправителю.

С минимальными усилиями можно отправлять отчеты в bugsense: http://www.bugsense.com/docs/android#acra

NB Срок действия бесплатной учетной записи bugsense ограничен 500 отчетами в месяц

1 голос
/ 22 марта 2016

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

Вот несколько важных моментов, которые следует учитывать при выборе или создании системы отчетов о сбоях, а также некоторые фрагменты кода:

  • Автоматически обнаруживает необработанные исключения ( пример кода )
  • Сбор диагностических данных, таких как использование памяти, информация об устройстве и т. Д. ( пример кода )
  • Эффективно группирует сбои по основной причине
  • Позволяет отслеживать действия, которые пользователь выполнял перед каждым сбоем, чтобы помочь воспроизвести ( пример кода )

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

1 голос
/ 02 апреля 2015

Поздно до вечеринки, я поддерживаю и верю, что ACRA - лучший вариант среди всех. Его легко установить и настроить. Я создал подробное руководство со всеми материалами для получения отчета о сбое с помощью ACRA и отправки его на мой адрес электронной почты с помощью MandrillAp.

Ссылка на пост: https://androidician.wordpress.com/2015/03/29/sending-crash-reports-with-acra-over-email-using-mandrill/

Ссылка на пример проекта на github: https://github.com/ayushhgoyal/AcraSample

0 голосов
/ 01 мая 2018

Вы можете сделать это прямо в Android Studio. Просто подключите телефон, запустите приложение, дайте ему упасть, и вы сможете просматривать трассировку стека прямо в Android Studio.

0 голосов
/ 15 февраля 2011

Аналитика Flurry предоставляет информацию о сбоях, модель оборудования, версию Android и статистику использования приложений в реальном времени. В новом SDK они предоставляют более подробную информацию о сбое http://www.flurry.com/flurry-crash-analytics.html.

0 голосов
/ 20 июня 2017

Google изменил, сколько отчетов о сбоях вы получаете. Ранее вы получали только ручные отчеты об ошибках.

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

Вы увидите все сбои, собранные на устройствах Android, пользователи которых выбрали для автоматического обмена данными об использовании и диагностике. Данные доступны за предыдущие два месяца.

Просмотр сбоев и ошибок приложения (ANR)

0 голосов
/ 03 ноября 2011

Если ваше приложение загружается другими людьми и происходит сбой на удаленных устройствах, вы можете заглянуть в библиотеку отчетов об ошибках Android (ссылка на которую приведена в этой публикации SO ). Если это только на вашем локальном устройстве, вы можете использовать LogCat. Даже если устройство не было подключено к хост-машине, когда произошел сбой, подключенное устройство и с помощью команды adb logcat загрузит всю историю logcat (по крайней мере, в той степени, в которой оно буферизовано, что обычно представляет собой загрузку данных журнала просто не бесконечно). Ответят ли какие-либо из этих вариантов на ваш вопрос? Если нет, можете ли вы попытаться уточнить, что вы ищете немного больше?

...