包之间的 ffi 版本冲突且无法在 pubspec.yaml 中获取依赖项

198*_*988 3 android yaml dart flutter pubspec

\n

由于 tflite_flutter >=0.6.0 取决于 ffi ^1.0.0 而 file_picker 5.2.1 取决于 ffi ^2.0.1,因此 tflite_flutter >=0.6.0 与 file_picker 5.2.1 不兼容。\n并且因为没有 file_picker 版本匹配 > 5.2.1 <6.0.0, tflite_flutter >=0.6.0 与 file_picker ^5.2.1 不兼容。\n因此,由于 untitled6 同时依赖于 file_picker ^5.2.1 和 tflite_flutter ^0.9.0,版本解析失败。\npub get失败(1;所以,因为 untitled6 依赖于 file_picker ^5.2.1 和 tflite_flutter ^0.9.0,版本解决 \xc2\xa0failed。)

\n
\n

tflite_flutter我尝试获取(https://pub.dev/packages/tflite_flutter )的 pubspec.yaml ,它似乎与file_pickerhttps://pub.dev/packages/file_picker)冲突,有什么方法可以更改本地 pubspec.yaml 中的 ffi 版本而不是在 tflite_flutter 上发出拉取请求?

\n

BHA*_*H T 6

首先尝试依赖覆盖pubspec.yaml

dependency_overrides:
  ffi: ^2.0.1
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,请添加两个冲突的依赖项pubspec.yaml而不指定版本,例如,

dependencies:
  tflite_flutter:
  file_picker:
Run Code Online (Sandbox Code Playgroud)

它会自动选择没有冲突的版本。

如果它确实有效,在pubspec.lock文件中,您可以看到它选择的版本,例如

bloc:
  dependency: transitive
  description:
    name: bloc
    url: "https://pub.dartlang.org"
  source: hosted
  version: "8.1.0"
Run Code Online (Sandbox Code Playgroud)

只需将此版本添加到pubspec.yaml文件中即可。这可以确保您每次运行时都不会获取不同的版本pub get

这暂时有效。但使用旧版本并不总是好主意。因此,请始终寻找新版本的软件包。

希望能帮助到你!