为什么我在Flutter Firebase项目执行flutter packages get时报包错误?
问题根因
你的依赖冲突来自两个开发依赖的版本不兼容:
- 你当前Flutter SDK自带的
flutter_driver依赖test_api 0.3.0版本 - 你指定的
mockito: ^4.1.2版本仅支持test_api ^0.2.19-nullsafety版本
二者依赖的test_api主版本不匹配,所以版本求解失败。
解决方案(按操作简易度排序)
方案1:删除无用的flutter_driver依赖(推荐新手使用)
大部分新手开发阶段不需要用到flutter_driver做集成测试,直接打开pubspec.yaml,删除dev_dependencies下的如下配置即可:
flutter_driver: sdk: flutter
修改完成后依次执行flutter clean、flutter pub get就能正常拉取依赖。
方案2:升级mockito到兼容版本
如果你需要使用flutter_driver,可以将dev_dependencies下的mockito版本修改为适配高版本test_api的版本:
把mockito: ^4.1.2改成mockito: ^5.0.10,这个版本的mockito支持test_api 0.3.x版本,适配你当前的SDK环境。修改完成后重新拉取依赖即可。
方案3:强制覆盖test_api版本
如果你不想调整现有依赖的版本,可在pubspec.yaml中新增dependency_overrides节点,强行统一test_api的版本:
# 新增节点,和dependencies、dev_dependencies平级 dependency_overrides: test_api: ^0.3.0
该配置会强制所有依赖使用test_api 0.3.0版本,绕过版本校验完成依赖拉取。
内容的提问来源于stack exchange,提问作者Mike Osborn
相关产品推荐
相关产品推荐

