使用IntelliJ在Android中调试后台服务

4
我最近从Eclipse转换到IntelliJ用于安卓开发(因为它更好地支持项目/模块)。但是,当我尝试调试后台服务时,似乎不可能实现这一点。有人成功地让IntelliJ调试后台服务吗?
非常感谢 Ben
2个回答

8
有两种方法可以实现:
  1. 在Android Run/Debug配置中,禁用Deploy application并启用Do not launch Activity

  2. 在工具栏中使用Attach debugger to Android process按钮: attach debugger


抱歉,后台服务未列出,因此我无法在执行此操作时命中任何断点。在Eclipse中,它们会列出正在运行的进程列表,然后我可以使用该列表选择后台服务并附加到调试器。看来我只能选择前台/主应用程序进程。 - Ben
你是否在AndroidManifest.xml中通过"android:process"属性指定了你的进程?IDE仅显示与你的项目相关的进程。 - ekudel
另外,你应该使用 IDEA 11.1.2 版本。IDEA 11.0.x 版本存在相关的 bug。 - ekudel
1
我发现了问题。原因是我的服务进程命名为:MyBackgroundService。通过将进程属性更改为.MyBackgroundService,服务现在显示出来了。终于解决了! - Ben
1
另外,您可以在启动代码中添加 android.os.Debug.waitForDebugger(),以便等待调试器附加。https://groups.google.com/d/msg/android-developers/DftP5gYcwYI/j_mccTSCHNQJ - Heath Borders

0

IntelliJ >= 2022

  1. 在 Android Run/Debug 配置中选择 Deploy: Default APKLaunch: Nothing

  2. 如果无法附加,请使用 Attach Debugger to Android Process 按钮:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接