如何切换当前Dart SDK版本?本地已装2.15.0但项目识别为2.7.2
解决方案
- 临时规避方案:直接执行
flutter pub get代替独立的pub get命令,flutter pub会默认调用Flutter内置的Dart SDK(也就是你本地的2.15.0版本),不会触发版本校验失败问题。 - 永久修复方案按以下步骤操作:
- 先排查当前Dart/Pub的实际来源
终端执行以下命令,确认全局dart和pub的调用路径:
如果输出的路径不是你的Flutter安装目录下的which dart which pubbin/cache/dart-sdk/bin子路径,说明系统中存在独立安装的旧版Dart SDK,优先级高于Flutter内置版本。 - 修正
.zshrc的PATH配置
你当前的配置存在两个冲突的Flutter路径,且优先级设置不合理,确认你实际使用的Flutter安装目录后,调整PATH顺序,把Flutter的路径放在最前面,保证内置的Dart SDK优先被调用。参考修正后的配置:
如果你是把Flutter放在根目录而非用户目录,就把第一行替换为export PATH="$HOME/flutter/bin:$PATH" export PATH=$PATH:$HOME/Library/Android/sdk/platform-tools/ export PATH="$PATH":"$HOME/.pub-cache/bin" export JAVA_HOME=$(/usr/libexec/java_home)export PATH="/flutter/bin:$PATH"即可,删除重复的Flutter路径配置。 - 卸载独立安装的旧版Dart SDK
如果之前用brew等包管理工具安装过独立的Dart SDK,执行对应卸载命令即可,比如brew环境下执行brew uninstall dart。 - 重载配置验证效果
终端执行source ~/.zshrc重载配置,之后运行dart --version确认版本为2.15.0,再执行pub get即可正常运行。
- 先排查当前Dart/Pub的实际来源
内容的提问来源于stack exchange,提问作者iDecode
相关产品推荐
相关产品推荐

