Android:dalvik在调试器断点时由于ANR而查杀应用程序

问题描述 投票:0回答:1

在Android 4.3嵌入式(自定义)设备上,我试图通过在Service子类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而崩溃。

android debugging dalvik
1个回答
3
投票

在开发人员设置中,有一个名为“select debug app”的选项。单击此按钮,然后选择要调试的应用程序。这样可以防止在调试时对该应用程序发生任何ANR。它还启用“等待调试器”选项,如果启用该选项,它将在应用程序启动后立即暂停,因此您可以附加调试器并调试应用程序启动代码(如有必要)。

© www.soinside.com 2019 - 2024. All rights reserved.