Flutter pubspec 依赖冲突

问题描述 投票:0回答:1

我在解决依赖关系方面遇到了有线问题。在我的应用程序 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

所以如果我正确理解这个符号:

  • YetAnotherLayoutBuilder 需要版本 >=3.0.0 和 <4.0.0
  • 的分析器
  • hive_generator 需要版本 >=1.0.0 和 <4.0.0
  • 的分析器

如有错误的地方,欢迎提出。

flutter dart package pubspec
1个回答
4
投票

现在下一个

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
© www.soinside.com 2019 - 2024. All rights reserved.