Windows系统下如何终止Flutter/Dart无限更新循环?
解决Flutter/Dart无限更新循环问题及原因分析
阻止更新的具体方法
- 锁定Dart SDK版本校验:在
flutter/bin/cache/目录下创建.dart-sdk.stamp文件,文件内容直接写你固定的Dart版本号2.18.4。Flutter会通过这个文件校验当前Dart SDK是否匹配预期,只要版本一致就不会触发下载。 - 全局禁用Flutter更新检查:设置环境变量
FLUTTER_NO_UPDATE_CHECK=1:- Windows:在系统环境变量中新增该变量,值设为
1 - Mac/Linux:在
~/.bashrc或~/.zshrc中添加export FLUTTER_NO_UPDATE_CHECK=1,执行source ~/.bashrc(或对应配置文件)生效
- Windows:在系统环境变量中新增该变量,值设为
- 关闭VS Code插件的更新检查:打开VS Code设置,分别搜索并勾选:
Dart: Disable Sdk Update ChecksFlutter: Disable Sdk Update Checks
- 修正pubspec.yaml的版本配置:删除pubspec里固定死的
2.18.4,改为对应Flutter版本的范围,比如">=2.18.0 <3.0.0"。Flutter项目的Dart版本由Flutter SDK绑定,固定版本会导致校验冲突。
为什么配置后仍触发更新
- Flutter内置的Dart SDK版本是和Flutter自身版本强绑定的,它不会读取pubspec.yaml里的版本来决定使用哪个Dart SDK,只会通过
flutter/bin/cache/.dart-sdk.stamp文件验证当前SDK是否符合预期。你之前只替换了SDK文件但没生成这个校验文件,所以Flutter仍会尝试下载匹配的版本。 - pubspec.yaml中的
environment.sdk是用来限制项目能兼容的Dart版本范围,约束的是项目编译时的版本要求,不是指定Flutter要使用的SDK版本,所以修改这里无法阻止Flutter更新内置SDK。 - 工作代理拦截了更新请求,导致Flutter下载失败后不断重试,形成无限循环。
内容的提问来源于stack exchange,提问作者Gerry
相关产品推荐
相关产品推荐

