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

Как отладить BOOT_COMPLETE вещательный приемник "Force Close" сработает?

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

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

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

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

Спасибо!

ИЗМЕНИТЬ

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Здесь мы идем:

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

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

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

С уважением Flo

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

Ответ 3

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

Ответ 4

Просто введите ваш терминал в Android Studio

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