每个版本的 integration_test 都依赖于来自 sdk 的 flutter_driver any,它依赖于 crypto 2.1.5

Posted

技术标签:

【中文标题】每个版本的 integration_test 都依赖于来自 sdk 的 flutter_driver any,它依赖于 crypto 2.1.5【英文标题】:Every version of integration_test depends on flutter_driver any from sdk which depends on crypto 2.1.5 【发布时间】:2021-07-12 13:50:29 【问题描述】:

自从我尝试将integration_test 包与get_test 一起添加以来,我一直遇到错误,这主要是因为just_audio 依赖于crypto: ^3.0.0integration_test 依赖于crypto: ^2.1.5

我试图在网上查看是否可以只安装没有 dev_dependencies 的依赖项,但是基于此issue,flutter pub cli 工具似乎还不支持。

这是我的pubspec.yaml

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2
  share: ^2.0.1
  get:
  get_storage:
  shared_preferences: ^2.0.5
  audio_service: 0.17.0-nullsafety.0
  just_audio: ^0.7.4

dev_dependencies:
  flutter_test:
    sdk: flutter

  get_test: ^3.13.3
  integration_test: ^1.0.2+1
  test: ^1.14.4

这是我遇到的错误。

Because every version of integration_test depends on flutter_driver any from sdk which depends on crypto 2.1.5, every version of integration_test requires crypto 2.1.5.
And because just_audio 0.7.4 depends on crypto ^3.0.0 and no versions of just_audio match >0.7.4 <0.8.0, integration_test is incompatible with just_audio ^0.7.4.
So, because egy_fm_radio depends on both just_audio ^0.7.4 and integration_test ^1.0.2+1, version solving failed.
pub get failed (1; So, because egy_fm_radio depends on both just_audio ^0.7.4 and integration_test ^1.0.2+1, version solving failed.)

【问题讨论】:

【参考方案1】:

我认为这个特定问题可以通过将 Flutter SDK 更新到最新版本 (>=2.2.0) 来解决,但如果有人遇到类似问题,请考虑使用 Dependency overrides 覆盖内置的依赖项integration_testflutter_driver 等软件包。

dependency_overrides:
  crypto: ^3.0.0

请注意,这涉及一些风险,pub 会在依赖关系解析期间向您显示警告。

【讨论】:

以上是关于每个版本的 integration_test 都依赖于来自 sdk 的 flutter_driver any,它依赖于 crypto 2.1.5的主要内容,如果未能解决你的问题,请参考以下文章

如何解决“在 Flutter SDK 中找不到包 integration_test”错误

如何与来自 Flutter integration_test 的原生 UI 元素进行交互?

颤振测试“FrameTimingSummarizer”错误

MYSQL三大范式

jvm的内存区域简介

从商业角度探讨API设计