Flutter执行pub get时flutter_link_preview与google_fonts出现http包版本冲突
依赖冲突根源
flutter_link_preview: ^1.0.3依赖http ^0.12.1,而google_fonts: ^2.1.0依赖http ^0.13.0,两个第三方包要求的http版本范围无重叠,导致版本解析失败。
解决方案(按优先级从高到低选择)
方案1:升级flutter_link_preview版本(推荐)
flutter_link_preview 2.0及以上版本已经适配http 0.13.x,修改pubspec.yaml配置即可解决冲突:
- 将
flutter_link_preview: ^1.0.3修改为flutter_link_preview: ^2.0.0 - 将
http: ^0.12.1改回http: ^0.13.0 - 依次执行命令:
flutter clean flutter pub get
该方案无需修改其他依赖,也不会影响现有功能的正常使用。
方案2:降级google_fonts版本
如果因业务逻辑限制无法升级flutter_link_preview,可以选择兼容http 0.12.x的google_fonts旧版本:
- 保留
http: ^0.12.1配置 - 将
google_fonts: ^2.1.0修改为google_fonts: ^1.1.2 - 依次执行
flutter clean、flutter pub get即可
注意:降级google_fonts可能会丢失部分2.x版本新增的特性,需提前确认业务是否依赖对应新特性。
方案3:强制覆盖依赖版本(兜底方案)
如果以上两个方案都无法满足需求,可以通过dependency_overrides强制全局指定http版本,忽略第三方包的版本限制:
- 在pubspec.yaml中添加和
dependencies平级的配置:
dependency_overrides: http: ^0.13.0
- 执行
flutter pub get
注意:该方案属于强制适配,需要后续测试flutter_link_preview的链接预览功能、google_fonts的字体加载功能是否正常,避免因版本不兼容出现运行时错误。
内容的提问来源于stack exchange,提问作者mo.aelmohaimen
相关产品推荐
相关产品推荐

