如何调试BOOT_COMPLETE广播接收器的"Force Close"崩溃?

Vik*_*ngh 17 android broadcastreceiver android-logcat bootcompleted

由于手机重启并因此在启动时与Eclipse调试器/ LogCat断开连接,如何查看启动完整广播接收器崩溃的位置?

我正在我的公共类的onReceive()中执行一些操作BootCompleteReceiver扩展BroadcastReceiver {...}

当手机启动时,这会崩溃并弹出一个强制关闭对话框.如何调试此问题并查看问题所在?

调试任何BOOT_COMPLETE广播接收器的问题都适用.

谢谢!

编辑

是的,我们可以看到系统登录LogCat,因为手机正在启动,但我的应用程序Log.d(TAG,"Boot completed")必须等到它(onReceive)被触发但是到那时应用程序崩溃了,因为问题在接收器本身的某个地方.在我可以记录任何内容之前,应用程序崩溃了.另外,对于重启的手机,我无法使用"在调试模式下运行"...

fkl*_*pan 75

正如我在另一个帖子上写的:

您可以通过adb连接到设备并打开设备shell来模拟所有广播操作.

开始了:

  • 打开控制台/终端并导航到/ platform-tools
  • 输入"adb shell"或在linux/mac上输入"./adb shell"
  • 在shell类型"am broadcast -a android.intent.action.BOOT_COMPLETED"或您要触发的任何操作.

通过这种方式,您应该能够进行调试.

adb或adb shell附带了许多不错的命令.就试一试吧

关心弗洛

编辑: 使用上述方法也将重启设备.防止设备重启使用am broadcast -a android.intent.action.BOOT_COMPLETED com.example.app.请注意广播所使用的应用程序包名称的后缀.这使您可以将BOOT_COMPLETED意图仅发送到您的应用程序以进行调试.- Roel van Uden

  • 键入`/ Android/sdk/platform-tools/adb shell am broadcast -a android.intent.action.BOOT_COMPLETED`会导致手机实际重启:-(因此,调试器已断开连接. (9认同)
  • 我使用`am broadcast -a android.intent.action.BOOT_COMPLETED com.example.app`解决了这个问题.请注意广播所使用的应用程序包名称的后缀.这使您可以将BOOT_COMPLETED意图仅发送到您的应用程序以进行调试. (5认同)
  • 我尝试了此操作,但收到“权限拒绝。不允许从pid = .... uid = ....发送广播...” (2认同)

Its*_*ank 1

检查您正在接收的 Intent 操作和捆绑包,它们可能为 null 并且可能是空指针异常。