Flutter pubspec 依赖冲突

Flutter pubspec dependency conflict

我在解决依赖关系方面遇到了有线问题。在我的应用程序 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 以便我们的应用程序也可以使用相同 dependency 的另一个 version。所以只需将以下代码添加到您的 pubspecs.yaml 文件

dependency_overrides:
  analyzer: ^2.8.0