库冲突如何解决同一个库的两个不同版本中的冲突- Flutter

sqougxex  于 2023-04-07  发布在  Flutter
关注(0)|答案(1)|浏览(331)

我正在尝试使用share_plusopen_file库,但它们与它们使用的内部库ffi ^1.0.0冲突。当这种情况发生时,我如何解决它?是否可以导入两个不同版本的库?如果ffi ^1.0.0
【testesFlutter】flutter pub get在testesFlutter中运行“flutter pub get”...解析依赖关系...因为open_file〉=3.1.0依赖于ffi ^1.0.0而share_plus 6.3.1依赖于ffi ^2.0.1,所以open_file〉=3.1.0与share_plus 6.3.1不兼容.所以因为view_page_testes依赖于share_plus 6.3.1和open_file 3.2.1,所以版本解析失败。pub get failed命令:“/用户/lucasbarreto/flutter/bin/缓存/dart-sdk/bin/dart __已弃用_pub --目录。获取--示例”发布环境:{“FLUTTER_ROOT”:“/Users/lucasbarreto/flutter”,“PUB_ENVIRONMENT”:“vscode.dart-code:flutter_cli:get”,“PUB_CACHE”:“/Users/lucasbarreto/.pub-cache”,}退出代码:% 1退出代码% 1

zzwlnbp8

zzwlnbp81#

您的项目中存在依赖冲突。在您的案例中,您依赖于open_fileshare_plusopen_file需要ffi版本1.0.0share_plus需要ffi版本2.0.1。要解决此问题,您可以使用3个步骤:
1.您可以更改依赖项的版本,以便两个包都支持公共的ffi版本。您可以通过硬编码值或让pub通过在依赖项版本中指定任何内容来完成这项工作。

dependency:
  open_file: any

1.您可以将其添加到pubspec.yaml中。

dependencies:
  open_file: //your version
  share_plus: //your version
dependency_overrides:
  ffi: '2.0.1' //This overrides the dependency in both packages.

1.你可以创建一个你想要升级依赖项的项目的fork,然后将它克隆到你的git仓库中。然后你可以更改包使用的ffi版本。现在在你的pubspec.yaml中,你可以在你的dependencies中导入fork,如下所示:

dependencies:
  open_file:
    git:
      url: your github package url

有关详细信息,请参阅:https://docs.flutter.dev/development/packages-and-plugins/using-packages#conflict-resolution

相关问题