Ответ 1
проверьте свои действия и пакеты, которые вы получаете, они могут иметь значение null и могут быть исключением с нулевым указателем.
Так как телефон перезагружается и, таким образом, отключается от отладчика Eclipse/LogCat во время загрузки, как я вижу, где сбой при загрузке полного вещательного приемника?
Я выполняю некоторые действия в onReceive() моего открытый класс BootCompleteReceiver расширяет BroadcastReceiver { ... }
Это происходит сбой и появляется диалоговое окно принудительного закрытия при загрузке телефона. Как мне отладить это и посмотреть, где проблема?
Вопрос верен для отладки любых приемников вещания BOOT_COMPLETE
.
Спасибо!
ИЗМЕНИТЬ
Да, мы можем видеть системные журналы в LogCat по мере загрузки телефона, но мое приложение Log.d(TAG, "Boot completed" ) должно ждать, пока он (onReceive) будет запущен, но к тому времени приложение выйдет из строя потому что проблема находится где-то в самом приемнике. Приложение сработает, прежде чем я смогу записать что-либо. Кроме того, я не могу использовать "Запуск в режиме отладки" для телефона, который перезагружается...
проверьте свои действия и пакеты, которые вы получаете, они могут иметь значение null и могут быть исключением с нулевым указателем.
Как я написал в другом потоке:
Вы можете эмулировать все действия трансляции, подключаясь через adb к устройству и открывая оболочку устройства.
Здесь мы идем:
Таким образом, вы должны иметь возможность отлаживать.
Есть куча приятных команд, идущих с adb или оболочкой adb. Просто попробуйте
С уважением Flo
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