我在解决依赖关系方面遇到了有线问题。在我的应用程序 pubspec 中,我有以下几行:
dependencies:
yet_another_layout_builder: ^0.1.0
dev_dependencies:
hive_generator: ^1.1.1
两个包都使用
analyzer
包,并且 flutter pub get
向我报告错误:
Because no versions of hive_generator match >1.1.1 <2.0.0 and hive_generator 1.1.1 depends on analyzer >=1.0.0 <3.0.0, hive_generator ^1.1.1 requires analyzer >=1.0.0 <3.0.0.
And because every version of yet_another_layout_builder depends on analyzer ^3.0.0, hive_generator ^1.1.1 is incompatible with yet_another_layout_builder.
So, because testApp depends on both yet_another_layout_builder ^0.1.0 and hive_generator ^1.1.1, version solving failed.
pub get failed (1; So, because testApp depends on both yet_another_layout_builder ^0.1.0 and hive_generator ^1.1.1, version solving failed.)
但是,当我查看这些包的 github 源代码时,我发现这个错误不应该发生。对于
hive_generator
pubspec 有以下限制:
dependencies:
analyzer: ">=1.0.0 <4.0.0"
对于
YetAnotherLayoutBuilder
pubspec 有:
dependencies:
analyzer: ^3.0.0
所以如果我正确理解这个符号:
如有错误的地方,欢迎提出。
现在下一个
hive_generator
插件有任何upgrade
然后这个version
并且yet_another_layout_builder
也没有downgrade
版本。因此,为了解决此类场景,我们有另一种方法在 Flutter中添加
dependencies
,即 dependency_overrides
,使用此方法我们可以 override
一些 dependencies
,以便我们的应用程序可以使用相同 的另一个
version
dependency
也是如此。因此,只需将以下代码添加到您的 pubspecs.yaml 文件
dependency_overrides:
analyzer: ^2.8.0