必须先装dart插件再装flutter插件并彻底重启vs code,否则语言功能缺失或设备列表为空;dart.fluttersdkpath须填sdk根目录(非/bin子目录),路径格式需严格匹配系统规范。

Flutter 和 Dart 插件必须成对安装且彻底重启
只装 Flutter 插件,dart 语言功能(如跳转定义、类型推导)会缺失;只装 Dart 插件,则 flutter run 命令不出现、设备列表为空、热重载按钮灰色——这不是配置问题,是功能链断裂。
必须按顺序操作:
- 先安装
Dart插件(发布者:Dart-Code),等右下角状态栏显示 “Dart” 语言模式后再继续 - 再安装
Flutter插件(同一发布者),它会自动拉取 Dart 依赖但不会覆盖已有 Dart 设置 - 关闭所有 VSCode 窗口(macOS 用
Cmd+Q,Windows 右键任务栏图标退出),彻底杀进程,再重新打开 - 打开任意
.dart文件,确认右下角显示设备名(如Chrome或iPhone 15)而非 “Plain Text”
stless/stful 不生效?先检查 languageId 和 snippets 范围
stless 或 stful 按 Tab 没反应,90% 是因为当前文件没被识别为 dart 语言。VS Code 的代码片段严格匹配 languageId,哪怕后缀是 .dart,右下角若显示 “Flutter” 或 “Plain Text”,片段就完全不触发。
验证和修复方法:
- 点击右下角语言标识,手动选 “
Dart” - 按
Ctrl+Shift+P→ 运行 “Developer: Inspect Editor Tokens and Scopes”,看顶部languageId是否为dart - 自定义布局模板(如
Column+Padding+Text)必须建全局 snippets 文件(命名含.code-snippets后缀),不能放在dart.json里——否则只在.dart文件生效,且需执行 “Developer: Reload Window” 才加载
dart.flutterSdkPath 必须填 SDK 根目录,不是 /bin 子目录
即使终端里 flutter doctor -v 全绿,VSCode 内部仍可能报 “Flutter SDK not found”。根本原因是 VSCode 不继承系统 PATH,且对路径格式极其敏感。
正确填写方式:
- macOS/Linux:
"dart.flutterSdkPath": "/Users/yourname/flutter"(结尾无/bin) - Windows:
"dart.flutterSdkPath": "C:\src\flutter"(反斜杠必须双写,不能用单斜杠或正斜杠) - 路径中不能含中文用户名、空格或符号链接;建议用绝对路径,避免
~展开失败 - 填完保存后,按
Cmd+Shift+P→ 运行 “Flutter: Run Flutter Doctor”,输出应与终端一致
热重载失效时别急着重启,先看改了什么
热重载(Ctrl+F5 或 Cmd+Shift+R)不是万能的。以下修改必须热重启(Ctrl+Shift+F5)才能生效:
- 修改了
main()函数外部的顶层变量(如全局常量、静态字段) - 改动了
StatefulWidget的initState()中的逻辑(尤其是异步初始化或监听器注册) - 新增或删除了
pubspec.yaml中的 assets 或 fonts,未运行flutter pub get - 修改了原生平台代码(
ios/或android/目录下)
真正卡住的点往往是:你以为改的是 Widget 树,其实动了 State 初始化逻辑——这时候热重载静默失败,但控制台不报错,容易误判为环境问题。











