Android Studio应用关闭后,能否重新附加Debugger查看Break point?
能否在Android应用关闭后用Android Studio调试器附加调试断点?
答案是:要看你的应用状态。如果应用已经完全关闭(系统把它的进程彻底终止了),那肯定没法直接附加调试器——毕竟调试器需要依附在一个正在运行的进程上才能监听断点、执行调试逻辑。不过,我们有几种办法能实现类似的需求,帮你调试想要的场景:
如果是想重新调试已关闭的应用
最直接的方式就是在Android Studio里点击「Debug」按钮重新启动应用,调试器会自动附加到新启动的进程上,你的断点会正常触发。要是你需要调试应用启动阶段的代码(比如Application的onCreate方法),可以提前设置让应用启动时等待调试器:- 打开Run/Debug Configurations(点击工具栏的下拉框,选择「Edit Configurations...」)
- 找到你的应用配置项
- 在「Launch Options」部分勾选「Wait for debugger to attach」
这样应用启动后会停在启动界面,直到你在Android Studio里点击「Attach debugger to Android process」(那个小虫子图标),就能调试启动流程里的代码了。
如果应用只是退到后台但进程还活着
这种情况更简单:直接点击Android Studio工具栏的「Attach debugger to Android process」按钮,在弹出的进程列表里找到你的应用包名对应的进程,选中后点击「OK」,调试器就会附加上去。之后切换回你的应用,触发对应的操作,断点就会被命中。用adb命令强制让应用启动时等待调试器
如果你习惯用命令行操作,可以执行这条adb命令:adb shell am set-debug-app -w com.your.app.package替换成你自己的应用包名后,下次启动应用时,它会自动进入等待状态,直到你在Android Studio里附加调试器。要是想取消这个设置,执行:
adb shell am clear-debug-app
总的来说,应用进程完全终止时没法直接附加调试器,但通过重新启动并设置等待、或者用adb命令预处理,你完全可以调试到想要的断点场景。
内容的提问来源于stack exchange,提问作者Sudhanshu Gaur
相关产品推荐
相关产品推荐

