Android Studio Hedgehog调试器卡在Evaluating状态求助
禁用即时求值功能
打开Android Studio设置,找到Build, Execution, Deployment > Debugger > Data Views > Java,取消勾选Enable auto expressions in Variables view和Enable auto expressions in Watches view。有时候即时求值会因为复杂对象或线程阻塞卡住,手动触发求值反而更稳定。清理缓存并重启IDE
点击File > Invalidate Caches...,选择Invalidate and Restart。IDE缓存损坏可能引发调试器异常,清理后能解决不少奇怪的调试问题。调整调试器堆内存
找到Android Studio安装目录下的studio.vmoptions文件(Windows在bin目录,Mac在Contents/bin),添加或修改-Xmx4096m(根据自己机器配置调整,8G内存可以设到4G),之后重启IDE。调试大对象时内存不足会导致求值卡住。检查自定义toString()方法
如果要查看的对象重写了toString(),里面有耗时操作(比如网络请求、数据库查询)或者循环引用,调试器求值时会无限等待。可以临时注释掉自定义的toString(),或者调试时直接查看对象字段,不用依赖自动生成的字符串。切换调试器类型
在Run/Debug配置里,找到Debugger选项卡,把Debugger type从Auto切换为Java(纯Java/Kotlin项目)或者Native(涉及JNI时),部分场景下自动切换会引发兼容性问题。更新Android Studio到最新稳定版
旧版本调试器可能存在已知bug,官方会在新版本修复这类问题。点击Help > Check for Updates升级到最新稳定版后再尝试调试。
内容的提问来源于stack exchange,提问作者Diego Perez

