Flutter SDK 已安装但 flutter doctor 报红,主因是 Dart 插件未在用户级启用;新项目无补全因分析器未加载上下文,需执行 flutter pub get;断点不命中因调试配置错误或 LSP 缓存问题;设备列表为空多因 ADB 路径未配置或端口冲突。

Flutter SDK 装了但 flutter doctor 一直报红
常见现象是 flutter doctor 提示 Flutter plugin not installed 或 Dart plugin not installed,哪怕你点开 VSCode 扩展市场搜到了插件并点了安装——它可能根本没生效。
关键原因:VSCode 有「工作区扩展」和「用户级扩展」之分,而 Flutter 官方要求 Dart 插件必须在「用户级别」启用(否则新建项目时无法识别 lib/main.dart、调试器不启动)。
- 打开 VSCode,按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Extensions: Show Installed Extensions - 找到
Dart Code(不是Flutter单独那个插件),点击右下角齿轮图标 → 确保勾选Install for all users(Windows)或Install globally(macOS) - 重启 VSCode,再运行
flutter doctor -v,[✓] VS Code (version X.X.X)行应显示Dart Code extension已就绪
新建 Flutter 项目后,VSCode 不提示自动补全或跳转定义
这不是插件没装,而是 Dart 分析器没加载项目上下文。VSCode 的 Dart 插件依赖项目根目录下的 .dart_tool 和 pubspec.yaml 生成语言服务缓存,但新项目刚创建时这些文件可能还没就绪。
- 确认项目根目录存在
pubspec.yaml且格式合法(比如name:后面不能有中文或空格) - 在 VSCode 终端中手动执行
flutter pub get(别用 GUI 按钮,它有时静默失败) - 等待右下角状态栏出现
Running 'pub get'...→Analysis server ready,此时才开始补全 - 如果仍无效,按
Ctrl+Shift+P输入Dart: Restart Analysis Server强制刷新
调试时断点不命中,控制台只输出 Launching lib/main.dart on Chrome... 就结束
这是 VSCode 的调试配置默认启用了「热重载模式」而非「完整调试会话」,尤其在 Web 或桌面目标上容易漏掉初始化断点。
- 检查当前调试配置:
.vscode/launch.json中的request字段必须是"launch",不是"attach" -
type必须为"dart"(不是"chrome"或"pwa-chrome") - 确保在
main.dart的void main()第一行设了断点,然后按F5启动(不是 Ctrl+F5) - 如果用的是 Flutter 3.16+ + VSCode 1.84+,注意
dart.previewLsp默认开启,某些旧项目可能因 LSP 缓存错乱导致断点失效,可临时在设置中关闭该选项
Android 模拟器能跑,但 VSCode 里看不到设备列表,flutter devices 也为空
根本问题不在 Flutter,而在 Android SDK 的平台工具(platform-tools)未加入系统 PATH,或者 ADB 服务被其他程序(如夜神模拟器、MuMu)占用了端口。
- 先运行
adb version,如果报command not found,说明platform-tools路径没配对;去 Android SDK 安装目录下找到platform-tools文件夹,把它的绝对路径加进系统环境变量PATH - 再运行
adb kill-server && adb start-server,观察是否打印* daemon started successfully - 如果卡住或报
error: protocol fault (no status),大概率是端口冲突,关掉所有第三方模拟器或手机助手软件 - 最后在 VSCode 里按
Ctrl+Shift+P输入Flutter: Refresh Device List,手动触发扫描
最常被忽略的一点:Android Studio 安装完后自带的 SDK 可能和命令行 flutter config --android-sdk 指向的不是同一个路径,两个地方的 platform-tools 版本不一致时,ADB 会拒绝通信。


















