使用chrome://inspect/#devices调试Android应用时断点不触发求助
我之前也碰到过完全一样的情况!断点加了好几个,结果程序一路跑到底根本不停,应用还正常运行,当时差点把AS卸了😂 给你分享几个我亲测有效的排查步骤:
先确认构建变体是Debug模式
别笑,我就犯过这个错——不小心用Release变体构建安装了,Release版本会做代码优化和混淆,断点肯定不会生效。你去右侧边栏的Build Variants面板看看,一定要选debug变体,然后重新构建安装一次。检查调试相关的配置开关
除了手机上的USB调试,还要确认AndroidManifest.xml里的<application>标签有没有加android:debuggable="true"(虽然AS在Debug模式下会自动加,但万一手动改了配置呢)。另外,手机开发者选项里的「等待调试器」可以打开,这样应用启动时会暂停,直到你连上调试器。清缓存+重启,万能的解决办法
AS的缓存有时候会抽风,试试:- 点顶部菜单
File -> Invalidate Caches...,选「Invalidate and Restart」重启AS - 卸载手机/模拟器上的应用,删掉项目里的
build文件夹,然后重新构建安装
- 点顶部菜单
检查断点本身是否有效
看看断点是不是灰色的?如果是,说明AS没识别到对应的代码位置,大概率是构建后的代码和你当前编辑的代码不一致。右键断点,确认「Enabled」是勾选状态,而且断点要打在可执行的代码行上(别打在注释、空行或者变量声明那行)。调试器连接选项再核对下
你选了「Java Only」,但如果你的应用里有Kotlin代码的话,试试选「Java/Kotlin」?另外,在Run菜单里选「Attach Debugger to Android Process」,找到你正在运行的应用进程,确保选对了再连接。排查ProGuard/R8混淆的影响
如果你的Debug构建也开了混淆(一般不建议这么做),那断点会因为代码被重命名而失效。打开Module级别的build.gradle,检查buildTypes -> debug里的minifyEnabled是不是true,是的话改成false,然后重新构建。
希望这些方法能帮你搞定问题!
内容的提问来源于stack exchange,提问作者Sam Verma




