解决办法
- 升级库版本
- 强制升级版本(dependency_overrides)
- 魔改吧,小伙
原因
依赖的传递性产生冲突.
举例:
需求:把B库从1.1.0升级到2.1.0。
如下pubspec配置, 1.1.0 a_library -> 2.0 c_library, 2.1.0 b_library-> 4.0 c_library。 两个不同版本的c_library 就冲突了
# pubspec.yaml (你的项目)
dependencies:
a_library: ^1.1.0
b_library: ^2.1.0
# pubspec.yaml (a_library 项目)
name: a_library
version: 1.1.0
dependencies:
c_library: 2.0
# pubspec.yaml (b_library项目)
Plain Text
name: b_library
version: 2.1.0
dependencies:
c_library: 4.0
解决步骤
1. 找到冲突的版本
- 升级 A库:到依赖 4.0 C库的版本
- 强制升级C库:A库最高就 1.1.0了,没有跟高版本了,但是 C库 4.0 兼容4.0以下的版本。
- 找C库作者,或自己动手魔改: C 库4.0不兼容以下版本,那只能凉凉了。
2. 升级冲突版本
-
升级A库,翻dart官网查 哪个版本依赖4.0C库 -
强制升级C库 采用 dependency_overrides: 命令
dependencies:
a_library: ^1.1.0
b_library: ^2.1.0
?
dependency_overrides:
c_library: ^4.0.0
|