Приложение неожиданно остановилось: как выполнить отладку? - PullRequest
23 голосов
/ 24 февраля 2011

Обратите внимание, что в отличие от многих других вопросов, имеющих тему «приложение неожиданно остановилось», я не прошу устранять неполадки в конкретной проблеме.

Скорее, я прошу набросок лучшей стратегии для новичка Android / Eclipse / Java для решения этой огромной задачи по перевариванию огромных объемов информации для разработки (и отладки!) Простого приложения для Android.

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

Приложение (Process.com.example.android.skeletonapp) неожиданно остановился. Пожалуйста, попробуй еще раз.

Хорошо, я знаю, что должен посмотреть LogCat. Он полон линий времени, уставившихся на меня ... Что мне теперь делать? Что мне нужно искать?

Есть ли способ пошагового выполнения программы, чтобы найти оператор, вызывающий сбой приложения? (Я думал, что Java-программы никогда не аварийно завершают работу, но, очевидно, я ошибался)

Как мне установить точку останова?

Можете ли вы порекомендовать учебник по отладке Android онлайн, кроме ?

Ответы [ 5 ]

16 голосов
/ 24 февраля 2011

Я также новичок в Eclipse / Android, но, надеюсь, мой простой процесс отладки поможет ...

Вы устанавливаете точки останова в Eclipse, щелкая правой кнопкой мыши рядом со строкой, на которой вы хотите разорвать, и выбирая «Переключить точку останова». Оттуда вы захотите выбрать «Отладка», а не стандартную «Выполнить», которая позволит вам шаг за шагом и так далее. Используйте фильтры, предоставляемые LogCat (на которые есть ссылки в вашем руководстве), чтобы вы могли нацеливаться на нужные сообщения, а не пробираться по всем выводам. Это (надеюсь) поможет вам разобраться в своих ошибках.

Что касается других хороших уроков, я сам искал несколько, но пока не нашел ни одного драгоценного камня.

9 голосов
/ 24 февраля 2011

Отфильтруйте ваш журнал как только Ошибка и найдите FATAL EXCEPTION

4 голосов
/ 24 февраля 2011

Если вы используете отображение Logcat внутри перспективы «отладка» в Eclipse, строки имеют цветовую кодировку. Довольно легко найти причину сбоя приложения, потому что оно обычно красного цвета.

Виртуальная машина Java (или Dalvik) никогда не должна аварийно завершать работу, но если ваша программа выдает исключение и не перехватывает его, виртуальная машина прервет вашу программу, что является «аварийным завершением», которое вы видите.

0 голосов
/ 25 ноября 2012
  1. На главном экране нажмите клавишу меню.
  2. Элемент списка
  3. Настройки касания.
  4. Приложения касания.
  5. Управление касаниемПриложения.
  6. Коснитесь Все.
  7. Выберите приложение, в котором возникают проблемы.
  8. Коснитесь Очистить данные и Очистить кэш, если они доступны.Это сбрасывает приложение, как если бы оно было новым, и может удалять личные данные, хранящиеся в приложении.
0 голосов
/ 15 апреля 2012

Проверьте, имеет ли ваше приложение необходимые разрешения. Я также получил ту же ошибку, и я проверил журнал отладки logcat, который показал это:

04-15 13:38:25.387: E/AndroidRuntime(694): java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.CALL dat=tel:555-555-5555 cmp=com.android.phone/.OutgoingCallBroadcaster } from ProcessRecord{44068640 694:rahulserver.test/10055} (pid=694, uid=10055) requires android.permission.CALL_PHONE

Затем я дал необходимое разрешение в своем Android-манифесте, который работал для меня.

...