Android:在调试器断点时,由于 ANR,dalvik 终止了应用程序

Android: dalvik killing app due to ANR when in debugger breakpoint

在 Android 4.3 嵌入式(自定义)设备上,我试图通过在服务子 class onStartCommand 方法中设置断点来调试我的应用程序。当我在断点处暂停时,由于 ANR 没有意识到我正在调试,dalvik 杀死了我的应用程序。

logcat显示:

W/ANRWatchdog: An ANR was detected but ignored because the debugger is connected (you can prevent this with setIgnoreDebugger(true))
I/dalvikvm: threadid=3: reacting to signal 3
D/dalvikvm: threadid=1: still suspended after undo (sc=1 dc=1)
I/dalvikvm: Wrote stack traces to '/data/anr/traces.txt'
Disconnected from the target VM, address: 'localhost:8600', transport: 'socket'

请注意,我的应用程序中有一个 ANRWatchDog 可以正确识别调试会话并忽略 ANR。

有没有办法对 Dalvik 做同样的事情?我假设可以在不因 ANR 而崩溃的情况下调试服务。

在开发者设置中,有一个名为 "select debug app" 的选项。单击此按钮和 select 您将要调试的应用程序。这应该可以防止在您调试该应用时出现任何 ANR。它还启用了 "wait for debugger" 选项,如果启用,应用程序将在启动时立即暂停,因此您可以附加调试器并在必要时调试应用程序启动代码。