Подтвердить что ты не робот

Приложение неожиданно остановилось: как отлаживать?

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

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

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

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

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

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

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

Можете ли вы порекомендовать программу отладки Android в Интернете, кроме этого?

4b9b3361

Ответ 1

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

Вы установили точки останова в Eclipse, щелкнув правой кнопкой мыши рядом с строкой, которую хотите разбить, и выбрав "Toggle Breakpoint". Оттуда вы захотите выбрать "Debug", а не стандартный "Run", который позволит вам пройти и так далее. Используйте фильтры, предоставляемые LogCat (ссылка в вашем учебнике), чтобы вы могли настроить таргетинг на нужные вам сообщения, а не на wading через весь вывод. Это (надеюсь) поможет вам понять ваши ошибки.

Как и в других хороших учебниках, я искал несколько для себя, но пока не нашел никаких драгоценных камней.

Ответ 2

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

Ответ 3

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

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

Ответ 4

Проверьте, есть ли у вашего приложения необходимые разрешения. Я также получал ту же ошибку, и я проверил журнал отладки 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

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

Ответ 5

  • На главном экране нажмите клавишу меню.
  • Элемент списка
  • Нажмите "Настройки".
  • Прикоснитесь к приложениям.
  • Нажмите "Управление приложениями".
  • Коснитесь Все.
  • Выберите приложение с проблемами.
  • Коснитесь Очистить данные и Очистить кеш, если они доступны. Это сбрасывает приложение, как если бы оно было новым, и может удалять личные данные, хранящиеся в приложении.