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



因为tflite_float>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不兼容。并且因为没有版本的file_picker匹配>5.2.1.<6.0.0,tflite_flutter>0.6.0与file_picker^5.2.1不兼容。因此,由于untitled6同时依赖于file_picker^5.2.1和tflite_flutter ^0.9.0,因此版本求解失败。pub-get失败(1;因此,由于untitled6同时依赖于file_picker^5.2.1和tflite_float^0.9.0,版本求解失败。(

我试图获得tflite_flutter的pubspec.yaml(https://pub.dev/packages/tflite_flutter)它似乎与CCD_ 2相冲突(https://pub.dev/packages/file_picker),有没有办法在本地pubspec.yaml中更改ffi版本,而不是在tflite_flutter上发出pull请求?

请先在pubspec.yaml中尝试依赖重写。

dependency_overrides:
ffi: ^2.0.1

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

dependencies:
tflite_flutter:
file_picker:

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

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

bloc:
dependency: transitive
description:
name: bloc
url: "https://pub.dartlang.org"
source: hosted
version: "8.1.0"

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

这将暂时有效。但使用旧版本并不总是好主意。所以总是寻找新版本的软件包。

希望它能有所帮助!

在这种情况下,您有3个选项:

  • tflite_flutter的凹凸版本(如果可能(
  • 文件picker的降级版本
  • 在用于ffi的yaml文件中使用dependencyoverrides

最新更新