Я регулярно получаю печально известное бесполезное сообщение «к сожалению, crappyApp перестало работать». Как понять, что на самом деле пошло не так? Я предполагаю, что где-то есть трассировка стека, хотя в идеале я хотел бы изменить само бесполезное сообщение, если это возможно на корневом устройстве.
Вы можете просто увидеть трассировку стека сбоя после любого сбоя. Используйте команду ADB ниже,
adb logcat -b crash #default
adb -d logcat -b crash #show from device when multiple device
adb -s logcat -b crash #show from simulator when multiple device
Есть несколько способов получить полезную информацию. Но, как указал Дэн , для решений на устройстве потребуется root (начиная с JellyBean) — и решения вне устройства ADB:
adb logcat
уже было описано в ответе Дэна . Для более подробной информации вы можете посмотреть нашу tag-wiki для логирования .adb bugreport > report.txt
дает очень подробную информацию, включая сведения из инструментов dumpsys
, dumpstate
и . logcat
Несколько инструментов для более легкого анализа его вывода можно найти, например, в ответах на лучший метод просмотра вывода «adb bugreport»? на нашем дочернем сайте.В большинстве случаев, если включена отладка по USB, можно использовать adb logcat
для просмотра вывода исключений. Обычно это включает трассировку стека, но это не часто полезно, если у вас нет исходного кода приложения. Тем не менее, разработчик приложения, вероятно, будет благодарен, если вы включите его в отчет об ошибке.
NullPointerException
на самом деле мало что говорит вам, если вы не разработчик приложения.Прочитайте файлы, под /data/anr/
которыми стоит «приложения не отвечают». я используюadb shell cat /data/anr/$FILE
Будет по одному для каждого приложения, которое принудительно закрывается или по какой-то причине не отвечает.
Иззи