频繁出现Error connecting to the service protocol连接错误该如何解决?
Error connecting to the service protocol: failed to connect to http://127.0.0.1:60180/d9zPljWey-4=/
报错产生原因
该报错是Flutter/Dart开发调试场景下的常见问题,本质是调试工具无法和Dart VM的服务协议端口建立连接,常见原因如下:
- 端口冲突:Dart VM启动时绑定的端口被其他进程占用,或者动态分配的端口和调试工具预期连接的端口不匹配
- 本地网络拦截:系统防火墙、杀毒软件、本地代理工具拦截了127.0.0.1环回地址的通信请求
- 调试进程残留:上一次调试异常退出后,旧的Dart进程没有被完全销毁,残留进程占用了目标端口,导致新调试实例无法正常通信
- 端口转发失效:针对真机/模拟器调试场景,adb的端口转发规则异常,没有把设备端的Dart VM服务端口正确映射到本地主机端口
- SDK版本bug:低版本Flutter SDK存在已知的VM服务协议连接缺陷,频繁触发热重载、热重启时容易出现连接中断
排查处理方案
- 清理残留调试进程
Windows 端执行命令:taskkill /F /IM dart.exe
Mac/Linux 端执行命令:killall dart
执行完成后重启编辑器再尝试调试 - 检查端口占用并指定固定调试端口
先执行命令查询报错提示的端口是否被占用:
Windows:netstat -ano | findstr 60180
Mac/Linux:lsof -i :60180
如果确认端口被其他进程占用,可在启动调试时手动指定固定端口避免冲突,命令示例:flutter run --observatory-port=56789 - 排查拦截规则
临时关闭系统代理、第三方代理工具、系统防火墙和杀毒软件,再尝试调试,确认是否是规则拦截导致的问题 - 修复adb转发规则(真机/模拟器调试场景)
依次执行命令重启adb服务:adb kill-serveradb start-server
重启完成后重新连接设备调试 - 升级SDK版本
执行flutter upgrade将Flutter SDK升级到最新稳定版,修复已知的版本兼容bug - 固定IDE调试端口
在VS Code的launch.json调试配置中添加参数"dart.vmServicePort": 56789,Android Studio在调试配置中指定Dart VM服务端口,避免动态端口分配冲突
内容的提问来源于stack exchange,提问作者sola
相关产品推荐
相关产品推荐

