Как отлаживать сообщения BOOT_COMPLETE в широковещательном приемнике «Force Close»?

Так как телефон перезагружается и, таким образом, отключается от отладчика Eclipse / LogCat во время загрузки, как я могу увидеть, где сбой вашего загрузочного полноправного приемника?

Я выполняю некоторые действия в onReceive () моего открытого класса. BootCompleteReceiver расширяет BroadcastReceiver {…}

Это приводит к сбою и всплывает диалоговое окно принудительного закрытия при загрузке телефона. Как мне отладить это и посмотреть, где проблема?

Вопрос верен для отладки любых BOOT_COMPLETE .

Благодаря!

РЕДАКТИРОВАТЬ

Да, мы можем видеть системные журналы в LogCat по мере загрузки телефона, но мое приложение Log.d (TAG, «Boot completed») должно ждать, пока он (onReceive) будет запущен, но к тому времени приложение выйдет из строя, потому что проблема Где-то в самом приемнике. Приложение сработает, прежде чем я смогу записать что-либо. Кроме того, я не могу использовать «Запуск в режиме отладки» для перезапуска телефона …

Solutions Collecting From Web of "Как отлаживать сообщения BOOT_COMPLETE в широковещательном приемнике «Force Close»?"

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

Как я писал в другой теме:

Вы можете эмулировать все действия трансляции, подключаясь через adb к устройству и открывая оболочку устройства.

Вот так:

  • Открыть консоль / терминал и перейти к / платформенным инструментам
  • Типа "adb shell" или на linux / mac "./adb shell"
  • В типе оболочки «am broadcast -a android.intent.action.BOOT_COMPLETED» или любое другое действие, которое вы хотите запустить.

Таким образом, вы должны уметь отлаживать.

Есть куча приятных команд, идущих с adb или оболочкой adb. Просто попробуйте

С уважением, Фло

EDIT: использование вышеуказанного метода также перезагрузит устройство. Чтобы предотвратить перезагрузку устройства, используйте am broadcast -a android.intent.action.BOOT_COMPLETED com.example.app . Обратите внимание на суффикс с именем пакета приложения, к которому идет трансляция. Это позволяет отправлять намерение BOOT_COMPLETED ТОЛЬКО вашему приложению для целей отладки. Роэл ван Уден

Приемник управляет только при запуске вашего кода (т.е. при запуске телефона). Во время отладки запустите код вручную. Вы можете решить 99% своих проблем таким образом, а остальные (если есть), которые вы можете решить, написав LogCat, чтобы узнать, что делает ваш код.

Просто поставьте свой терминал в Android Studio

adb shell am broadcast -a android.intent.action.BOOT_COMPLETE