Flutter运行报错adb无法执行、找不到连接设备问题求助
解决方案
第一步:验证ADB本身运行状态
- 打开系统cmd窗口,直接执行
adb version,检查是否能正常输出版本号:- 如果提示找不到命令,优先修正环境变量配置:确认
ANDROID_SDK_ROOT变量值为SDK根目录C:\Users\Pulsara\AppData\Local\Android\Sdk,不要定位到platform-tools层级;再确认Path中添加的%ANDROID_SDK_ROOT%\platform-tools、%ANDROID_SDK_ROOT%\tools路径无拼写错误,配置完成后需重启所有cmd和IDE窗口生效。 - 如果可以正常输出版本号,继续执行后续排查步骤。
- 如果提示找不到命令,优先修正环境变量配置:确认
第二步:排查5037端口占用
ADB默认使用5037端口通信,端口被其他程序占用会触发「连接被远程主机强制关闭」报错:
- 执行命令查看端口占用进程:
netstat -ano | findstr :5037 - 记录输出结果最后一列的PID数值,执行命令结束占用进程:
taskkill /F /PID 刚才查到的PID号 - 手动重启ADB服务:
adb start-server
启动无报错后再执行adb devices,验证是否能正常输出设备列表。
第三步:排查安全软件拦截
本地防火墙、杀毒软件会拦截ADB的本地通信请求,是该类报错的高发原因:
- 暂时关闭Windows Defender防火墙、第三方杀毒软件/安全管家,再次尝试启动ADB服务
- 若关闭后问题解决,将
adb.exe、你使用的IDE(Android Studio/VS Code)添加到防火墙和杀毒软件的白名单即可。
第四步:重置ADB和Flutter配置
- 执行命令批量结束所有ADB后台进程:
taskkill /F /IM adb.exe - 进入
C:\Users\Pulsara\AppData\Local\Android\Sdk\platform-tools目录,删除adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll三个文件,重新通过Android SDK Manager下载安装platform-tools - 手动指定Flutter的SDK路径:
flutter config --android-sdk C:\Users\Pulsara\AppData\Local\Android\Sdk - 重启IDE后执行
flutter doctor再次验证问题是否解决。
内容的提问来源于stack exchange,提问作者Pulsara Sandeepa
相关产品推荐
相关产品推荐

