哪些ADB或Android调试代码会触发“等待调试器连接”提示弹窗?
触发"Application waiting for debugger to attach"弹窗的ADB指令及调试操作汇总
可直接触发弹窗的ADB指令
- 带调试参数启动指定应用:执行
adb shell am start -D -n <包名>/<目标Activity全类名>,指令中的-D参数会强制目标应用启动后直接进入等待调试器挂载状态,执行后会立刻弹出对应提示。 - 配置应用默认启动为调试模式:执行
adb shell am set-debug-app -w <包名>,指令中的-w参数会标记目标应用下次启动时自动进入等待调试状态,手动冷重启应用后就会弹出提示。如果需要清除该标记,执行adb shell am clear-debug-app即可。 - 给运行中进程挂载调试等待:部分Android 8.0及以上版本支持
adb shell am attach-debugger <目标进程ID>指令,执行后正在运行的目标进程会直接挂起,弹出等待调试器的提示。
代码及系统配置触发场景
- 应用代码主动调用调试等待方法:当应用Manifest中
android:debuggable属性为true(debug编译包默认开启该属性)时,代码中执行到Debug.waitForDebugger()方法,应用就会主动挂起,弹出对应提示。 - 开发者选项预设调试规则:开启开发者选项中的「选择调试应用」指定目标包名,同时开启「等待调试器」开关后,目标应用每次启动都会自动进入等待调试状态,弹出提示。
- 调试工具半连接触发:当通过ADB完成调试端口转发后,Android Studio等调试工具发起挂载请求但未完成完整校验连接时,部分系统版本也会触发该提示,告知用户当前应用正在等待调试端完成连接流程。
内容的提问来源于stack exchange,提问作者Dave Inkredble
相关产品推荐
相关产品推荐

