You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter升级后dart run build_runner build报错,求解决方案

解决Flutter 3.22.0下dart run build_runner build无法识别flutter_test的问题

问题原因

dart run是纯Dart命令行工具,默认不会自动关联Flutter SDK中的依赖包(如flutter_test这类声明为sdk: flutter的依赖),而flutter pub run会自动加载Flutter的环境配置,因此能正常执行。升级到Flutter 3.22.0后,可能因Dart SDK与Flutter SDK版本不匹配、环境变量优先级问题,导致纯Dart命令无法找到Flutter SDK中的依赖。

解决方案

1. 确保Dart SDK与Flutter绑定版本一致

Flutter 3.22.0对应Dart版本为3.4.0,执行以下命令检查版本是否匹配:

flutter dart --version
dart --version

若两个命令输出的Dart版本不一致,说明系统中存在独立Dart SDK且优先级更高,需调整环境变量让Flutter自带的Dart优先:

  • Windows:打开系统环境变量,将[你的Flutter安装目录]\bin移到PATH列表最上方,保存后重启终端。
  • Mac/Linux:根据你的shell类型执行对应命令,替换$HOME/flutter为实际安装路径,然后重启终端:
    # Bash
    echo 'export PATH="$HOME/flutter/bin:$PATH"' >> ~/.bashrc
    source ~/.bashrc
    
    # Zsh
    echo 'export PATH="$HOME/flutter/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    

2. 清理项目缓存并重新拉取依赖

执行以下命令重置项目依赖状态:

flutter clean
flutter pub get

完成后再次尝试执行:

dart run build_runner build

3. 强制让Dart命令使用Flutter环境配置

若上述步骤无效,可通过环境变量指定Flutter运行上下文:

PUB_ENVIRONMENT=flutter_cli dart run build_runner build

该环境变量会让Dart命令以Flutter CLI的上下文运行,从而识别sdk: flutter类型的依赖。

4. 确认pubspec.yaml依赖声明正确性

你的配置中dev_dependencies的flutter_test声明已正确:

dev_dependencies:
  flutter_test:
    sdk: flutter

无需修改此部分,只需确保flutter pub get执行成功,生成正确的依赖映射。

内容的提问来源于stack exchange,提问作者Maruf Robin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:05:25