Как узнать, по каким причинам приложения для Android выходят с исключениями?

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

Аналогично, когда вы устанавливаете определенные приложения в эмуляторе, он не работает и выдает вам исключение, но когда вы устанавливаете приложения на свой телефон и / или планшет, он может работать отлично.

Итак, мой вопрос: как узнать, по каким причинам приложения выходят с исключением? Где я могу найти дополнительную информацию, чтобы узнать причины, по которым приложения закрываются в виде исключений?

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

ВАЖНО: этот вопрос задан с точки зрения конечного пользователя . Это НЕ вопрос с точки зрения разработчика . Спасибо.

Вы спрашиваете об этом с точки зрения пользователя или разработчика (как это понять)?
@Izzy С точки зрения пользователя
ОК - в этом случае см. мой ответ ниже. (Для близких избирателей: вопрос с точки зрения пользователя, это НЕ не по теме, так что держите его открытым;)
@Иззи, спасибо за ваш отзыв. Я изменил вопрос, чтобы не было неправильного понимания вопросов. Спасибо :)

Ответы (2)

Если вы, как пользователь, сталкиваетесь с такими сбоями и хотите помочь разработчику исправить их, вы можете использовать такие инструменты, как aLogcat (бесплатно) — logcat или Bug Reporter , чтобы получить журнал того, что произошло:

алогкат Репортер об ошибках

В то время как aLogCat позволяет вам ограничить журнал ближе к событию сбоя (позволяя вам определить, что записывать), Bug Reporter позволяет вам отправлять другую полезную информацию, такую ​​​​как особенности устройства и тому подобное.

РЕДАКТИРОВАТЬ: Как правильно указал Лиам в своем комментарии, из-за изменений разрешений в Jelly Bean (4.1) некоторые из этих средств просмотра журналов больше не могут видеть ничего, кроме своих собственных записей журнала. Если ваше устройство рутировано, самый простой способ заставить их снова работать — преобразовать их в системные приложения (например, с помощью Titanium Backup ). Если у вас версия Android 4.0.x или ниже, это не должно повлиять на вас.

Спасибо, Иззи, logcat был замечательным, за исключением того, что он довольно медленный (вероятно, файл журнала слишком велик).
«Файл журнала» представляет собой кольцевой буфер, поэтому он имеет постоянный размер. Я использую aLogCat уже почти 2 года (время от времени) и был им доволен, поэтому я не стал присматриваться к альтернативам вроде Gemini Live Logcat , LogViewer Lite (LogCat) и им подобным, которые вы тоже можете попробовать :)
Помните: эти приложения не работают в (я думаю) 4.1+ без рута!
Йепп — +1 за эту подсказку, Лиам. Не уверен, 4.1 или 4.2, но вокруг этого было установлено ограничение, что приложения могут видеть только свои собственные журналы. Но был кое-какой обходной путь AFAIR. Тогда я проверю и обновлю свой ответ. Спасибо за подсказку!
В Windows есть утилита Event Viewer, которая фиксирует необработанные исключения и сообщает большое количество информативных данных. У нас есть что-то подобное на Android?
@SaeedNeamati Почему бы не задать это как отдельный вопрос, чтобы было проще? Тем более, что этот вопрос здесь довольно старый, и поэтому ваш комментарий вряд ли привлечет внимание :)
@Иззи, спасибо за подсказку. Я спросил это здесь

В основном из-за аппаратных различий.

Вы можете использовать средство просмотра logcat на Android 2.3 или ниже, чтобы просмотреть logcat из всех приложений — это предоставит журнал из приложений, которые сообщат вам об исключении.

Имейте в виду, что в Jellybean или ICS Google запретил приложениям читать логарифм из других приложений на устройстве — вы все еще можете использовать adbдля просмотра всего логарифма и можете вывести его в logcat.logфайл с помощью этой команды:

adb logcat > logcat.log
Подождите, вы имеете в виду, что нет альтернативного способа получить логи для версии Android выше 2.3?
Ах... почти, но, насколько мне известно, это влияет только на JellyBean и "выше" (поэтому ICS/4.0 и ниже должны работать). Получил хард без рута, так как каждое приложение теперь видит только свои записи в логах. Был некоторый обходной путь AFAIR, но я не уверен, что это также связано с root ...