Flutter项目pubspec.yaml配置SDK约束后dart pub get报错问询
问题根因
该冲突由VSCode调用的Dart SDK和Flutter绑定的Dart SDK版本不匹配导致:VSCode当前识别到的全局Dart SDK版本低于2.14.0,因此会误判>=2.14.0 <3.0.0的约束无合法SDK匹配,抛出错误要求你降级下限到2.10.0;如果按照提示降级,又会和你项目中依赖的需要更高版本SDK的三方包冲突,触发其他错误。
解决步骤
- 首先确认本地Flutter绑定的Dart SDK版本正确:终端执行
flutter doctor -v,在输出的Dart版本字段确认是2.14.2,同时复制Dart SDK的文件路径,一般为「Flutter安装目录/bin/cache/dart-sdk」 - 配置VSCode优先使用Flutter绑定的Dart SDK:打开VSCode设置(Windows/Linux快捷键
Ctrl+,,Mac快捷键Cmd+,),搜索dart.sdkPath,将刚才复制的Dart SDK路径填入配置项 - 清理项目缓存后重新拉取依赖:
- 删除项目根目录下的
.dart_tool文件夹、pubspec.lock文件 - 终端执行
flutter clean - 不要使用
dart pub get,直接执行flutter pub get拉取依赖,确保调用的是Flutter绑定的Dart SDK
- 删除项目根目录下的
- 保持pubspec.yaml中environment下的sdk约束为
">=2.14.0 <3.0.0"即可,无需按错误提示降级
异常排查
如果完成上述操作后仍报错,打开VSCode命令面板(Windows/Linux快捷键Ctrl+Shift+P,Mac快捷键Cmd+Shift+P),执行Dart: Select SDK命令,手动选择版本为2.14.2的Flutter绑定SDK即可。
内容的提问来源于stack exchange,提问作者damnexpress
相关产品推荐
相关产品推荐

