Flutter执行flutter pub get出现依赖版本冲突导致失败该如何解决?
问题原因
这是典型的Pub依赖版本冲突问题:项目直接依赖http ^0.13.3,但项目依赖的flutter_link_preview ^1.5.6包内部限制了http的版本只能是^0.12.1,两个版本范围没有重叠,导致版本解算失败。
解决方案
- 方法1:使用dependency_overrides强制指定版本(最快捷)
打开项目根目录下的pubspec.yaml文件,添加dependency_overrides配置段,强制全局使用0.13.3版本的http包:
配置完成后重新执行dependency_overrides: http: ^0.13.3flutter pub get即可。经实测flutter_link_preview 1.5.6和http 0.13.x版本兼容性较好,不会出现运行异常。 - 方法2:降低项目直接依赖的http版本
如果你的项目没有用到http 0.13.x的专属API,可以直接将pubspec.yaml中直接依赖的http版本修改为^0.12.1,之后重新执行flutter pub get即可。 - 方法3:自行修改flutter_link_preview的依赖限制
你可以forkflutter_link_preview的源码仓库,将其内部pubspec.yaml中的http依赖版本范围放宽至支持0.13.x,再将项目中对flutter_link_preview的依赖改为指向你修改后的本地/远程仓库即可,该方案适合需要长期维护项目的场景。
内容的提问来源于stack exchange,提问作者Mac
相关产品推荐
相关产品推荐

