Android-приложение для генерации багрепорта
Иногда пользователи нашего приложения для Android сталкиваются с неясной проблемой в инфраструктуре Google, которую Google пытается отследить. И естественно, что Инженер, работающий над этим, хочет увидеть какой-нибудь отчет об ошибке, когда это произойдет. Что подводит нас к старой проблеме, как заставить генерального конечного пользователя создавать и отправлять отчет об ошибке. Установка SDK, настройка системы Windows, чтобы можно было сделать отчет об ошибке adb, не представляется осуществимой.
Я искал простое приложение, которое сделает это, но безуспешно. Поэтому я попытался добавить эту возможность в свое приложение. И здесь мне нужна помощь. Если я использую команду оболочки для доступа к своему устройству, я могу генерировать отчеты с помощью чего-то простого, например, sh -c 'bugreport | gzip > bugreport.gz'Но если я пытаюсь выполнить это из своего приложения, bugreport просто отображает сообщение об ошибке Не удалось подключиться к службе dumpstate. Я предполагаю, что у меня отсутствует какое-то странное разрешение, но я понятия не имею, что это может быть.
У кого-нибудь есть идеи, что я могу попробовать?
3 ответа
Если я не ошибаюсь, вы хотите увидеть журнал ошибок при сбое приложения. Для этого вы можете интегрировать библиотеку ACRA с кодом. Это может привести к возникновению необработанных ошибок во время выполнения, которые могут быть отправлены на электронную почту или конкретный сервер.
Пользователь "оболочки" имеет право делать то, чего не делают приложения, поэтому вы не можете просто запустить отчет об ошибках из приложения.
На Android 4.2 и более поздних версиях вы можете получить отчет об ошибке в меню параметров разработчика. Меню можно включить, зайдя в "Настройки", выбрав "О телефоне", и нажав "Номер сборки" семь раз. (Это задокументировано здесь, в разделе "Параметры разработчика на устройстве".)
Сформированный отчет об ошибке может быть отправлен по электронной почте (следите за появлением уведомления). В некоторых случаях это менее полезно, чем "adb bugreport", так как вам нужно переключиться в "Настройки", чтобы сгенерировать отчет, но он будет иметь полные логи и другие полезности. Есть волшебная последовательность клавиш, которая будет инициировать отчеты об ошибках, но я не знаю, есть ли способ включить ее на устройствах не-dev.
Android теперь имеет возможность записывать сообщения об ошибках по желанию. Чтобы процитировать комментарий о проблеме андроида от участника проекта:
Сначала включите ярлыки отчетов об ошибках:
перейдите к настройкам разработчика, убедитесь, что "Отладка по USB" включена, затем включите "Ярлык отчета об ошибке".
Когда вы столкнулись с ошибкой:
Чтобы получить отчет об ошибке, удерживайте кнопку питания и выберите опцию "Получить отчет об ошибке".
Это создаст ZIP-архив и предложит поделиться им, например, по электронной почте, загрузить на диск Google или что-то еще. Но обратите внимание, что zip-файл с отчетом об ошибках содержит кучу информации, которую можно считать конфиденциальной, поэтому пользователи должны делиться ею только с теми людьми, которым доверяют, чтобы использовать их надлежащим образом. И, конечно же, обратите внимание, что разработчик приложения, вероятно, уже может получить доступ к некоторой или всей этой информации. Инструмент ChkBugReport дает представление о том, что сообщается. Но я не видел хорошего описания безопасности / конфиденциальности (или вообще никакой официальной документации по всем этим вопросам), поэтому я советую принять соответствующие меры предосторожности.