14

有没有在 Android Studio 中调试服务的正确方法?还是 Android Studio 无法做到这一点?当我尝试调试时,它只会断开套接字。("与目标VM断开连接,地址:'localhost:8600',传输'socket')

希望你能在这里帮助我..

我通过这里的一些链接作为建议所做的事情,我已经放置了 .waitForDebugger 但没有任何反应。请帮助我.. 非常感谢。

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent mainService = new Intent(this,MainPowerAndVolumeService.class);

    startService(mainService);
    android.os.Debug.waitForDebugger();

    finish();

}
4

2 回答 2

16

“在调试中运行”旁边有一个按钮(在版本 1.1.0 中看起来像这样:)覆盖有小错误的电话图标,用于将调试器附加到正在运行的 android 进程。这是官方信息(对于 IntelliJ,但在 Android Studio 中相同): http ://blog.jetbrains.com/idea/2011/05/new-in-105-attach-debugger-to-a-running-安卓进程/

于 2013-09-27T11:16:56.847 回答
0

(2020年8月更新:Android Studio 4.0中的按钮图标相同)

所以它正在等待调试器附加,一旦服务启动,但你仍然需要告诉 Android Studio 附加到进程(它不会自动发生)。

按下按钮附加到进程(参见 Android Studio 3.6 的屏幕截图 .. 它是按钮右侧的第三个debug按钮)。您将可以选择附加到的进程,其中一个是后台服务的单独进程。

这是按钮,背景突出显示

按下按钮附加到进程的时间,需要在后台服务启动后(在等待时android.os.Debug.waitForDebugger();),否则进程将不存在,您将无法选择它。

于 2020-05-29T06:06:46.753 回答