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

如何解决执行pub get时出现的Flutter依赖冲突错误?

解决Flutter pub get 依赖冲突问题

问题场景

执行pub get时出现版本解析失败,最终报错核心是:

由于fstore同时依赖flutter_launcher_icons 0.8.1和cached_network_image 2.5.1,版本解析失败。

冲突根源拆解

咱们把依赖链理清楚就明白问题出在哪了:

  • 首先,SDK中所有flutter_driver版本都依赖webdriver 3.0.0,而webdriver 3.0.0要求archive ^3.0.0;
  • 但image >=2.1.14 <3.0.0-nullsafety.0这个区间的版本依赖的是archive ^2.0.0,这就导致flutter_driver和这个区间的image完全不兼容;
  • 再看你项目里的依赖:
    • cached_network_image 2.5.1依赖flutter_cache_manager ^2.1.0,而这个版本的flutter_cache_manager要求image >=2.1.18 <4.0.0;
    • flutter_launcher_icons 0.8.1依赖image ^2.1.1;
      两者结合下来,项目实际要求image ^2.1.18,正好落在和flutter_driver冲突的区间里;
  • 你的项目fstore同时依赖了flutter_launcher_icons 0.8.1、cached_network_image 2.5.1以及SDK中的flutter_driver,三方的版本要求互相矛盾,所以pub get直接失败。

具体解决办法

给你几个可行的方案,根据你的项目需求选就行:

方案1:升级冲突依赖到兼容版本

这是最稳妥的方式,直接消除版本矛盾:

  • 升级flutter_launcher_icons到0.9.x及以上版本(比如0.10.0),这些版本已经适配了更高版本的image,不会再限制在^2.1.1区间;
  • 同时可以把cached_network_image升级到3.x版本,它的依赖链已经更新,完全兼容archive ^3.0.0。

方案2:移除不必要的依赖

如果你的项目其实不需要flutter_driver(比如只是开发普通APP,没有写自动化测试的需求),可以:

  • 在pubspec.yaml中直接移除flutter_driver依赖;
  • 或者如果只是开发时偶尔用到,把它移到dev_dependencies下,这样不会影响主依赖的版本解析。

方案3:使用依赖覆盖(风险需自行评估)

如果暂时不想升级或移除依赖,可以在pubspec.yaml中添加dependency_overrides强制指定兼容的版本:

dependency_overrides:
  archive: ^3.0.0
  image: ^3.0.0-nullsafety.0

注意:这种方式可能会让部分依赖出现潜在兼容性问题,一定要全面测试项目功能后再使用。

内容的提问来源于stack exchange,提问作者Aojesh Shrivastava

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 19:28:12