Flutter 3.3.2中无法添加mocktail依赖的问题求助
解决Flutter 3.3.2添加mocktail依赖失败的问题
问题重现
升级Flutter至3.3.2后,在pubspec.yaml中添加mocktail依赖时失败,修改环境参数为:
environment: sdk: ">=2.12.0 <3.0.0" dev_dependencies: flutter_test: sdk: flutter flutter_lints: flutter_launcher_icons: ^0.10.0 integration_test: sdk: flutter mocktail:
报错信息如下:
Error on line 1, column 1 of ..\..\flutter_windows_v1.12.13Base\flutter\.pub-cache\hosted\pub.dartlang.org\.cache\mocktail-versions.json: Invalid version constraint: Expected version number after ">=" in ">=2.12-0-0 <3.0.0", got "2.12-0-0 <3.0.0". pub get failed (65; Error on line 1, column 1 of ..\..\flutter_windows_v1.12.13Base\flutter\.pub-cache\hosted\pub.dartlang.org\.cache\mocktail-versions.json: Invalid version constraint: Expected version number after ">=" in ">=2.12-0-0 <3.0.0", got "2.12-0-0 <3.0.0".) Process finished with exit code 65
flutter doctor检测无异常。
解决步骤
1. 修复pubspec.yaml的格式与配置
pubspec.yaml存在缩进错误、依赖缺失版本号的问题,同时环境SDK约束需匹配Flutter 3.3.2对应的Dart版本(2.18.1),修改后内容如下:
environment: sdk: ">=2.18.0 <3.0.0" # Flutter 3.3.2对应Dart 2.18.1 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 flutter_launcher_icons: ^0.10.0 integration_test: sdk: flutter mocktail: ^0.3.0 # 指定兼容Dart 2.12+的版本
2. 清理Pub缓存
缓存文件损坏导致版本解析失败,执行命令清理缓存:
flutter pub cache clean
3. 重新获取依赖
清理完成后,运行命令重新拉取依赖:
flutter pub get
问题原因
pubspec.yaml的YAML格式要求严格,缩进错误、依赖未指定版本号会导致依赖解析流程异常。- 环境SDK约束需与当前Flutter版本匹配,Flutter 3.3.2对应的Dart版本为2.18.1,明确指定最低版本为2.18.0能避免潜在的版本兼容问题。
- Pub缓存中的
mocktail-versions.json文件损坏,导致版本约束解析失败,清理缓存后重新获取可生成正确的缓存文件。
内容的提问来源于stack exchange,提问作者bdthombre
相关产品推荐
相关产品推荐

