flutter 如何简单解决多依赖版本冲突?

sf6xfgos  于 2022-11-17  发布在  Flutter
关注(0)|答案(6)|浏览(527)

我在android studio flutter中导入了一个项目。但是,有一个令人难以置信的版本冲突数量进来。如果一个解决其他上升,如果下降,另一个上升。我试图得到所有的包,它显示我如下错误。

Because date_utils >=0.1.0+3 depends on intl ^0.16.0 and prokit_flutter depends on intl 0.17.0-nullsafety.2, date_utils >=0.1.0+3 is forbidden.
So, because prokit_flutter depends on date_utils ^0.1.0+3, version solving failed.

pub get failed (1; So, because prokit_flutter depends on date_utils ^0.1.0+3, version solving failed.)
Process finished with exit code 1

我的pubspec.yaml代码如下。

name: prokit_flutter
description: A new Flutter application.
version: 1.0.0+1

environment:
  sdk: ">=2.6.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.0
  url_launcher: 5.0.3
  nb_utils: 3.1.6+7
  google_fonts: 1.1.0
  animations: 1.1.2
  intl: 0.17.0-nullsafety.2
  http: 0.12.2
  firebase_core: 0.5.0
  firebase_analytics: 6.0.0
  firebase_crashlytics: 0.1.4+1
  google_sign_in: 4.5.3
  html: 0.14.0+3
  share: 0.6.5
  mobx: ^1.2.1+2
  flutter_mobx: ^1.1.0+2

  flutter_statusbarcolor: 0.2.3
  simple_animations: 1.3.8
  snaplist: 0.1.8
  flutter_svg: 0.18.1
  flutter_slidable: 0.5.7
  flutter_staggered_grid_view: 0.3.2
  flutter_staggered_animations: 0.1.2

  geolocator: 5.3.2+2
  geocoder: 0.2.1
  google_maps_flutter: 0.5.21+3
  clustering_google_maps: 0.1.2
  razorpay_flutter: 1.2.2
  signature: 3.2.0
  liquid_swipe: 1.5.0
  lipsum: 1.0.1
  flutter_colorpicker: 0.3.4
  clippy_flutter: 1.1.1
  flutter_tags: ^0.4.8
  image_picker_gallery_camera: 0.1.6
  video_player: 0.10.11+2
  charts_flutter: ^0.9.0
  like_button: ^1.0.1
  flutter_reaction_button: ^1.0.1
  lottie: ^0.6.0
  showcaseview: ^0.1.6
  date_utils: ^0.1.0+3
  cached_network_image: ^2.3.1

  flutter_localizations:
    sdk: flutter

dev_dependencies:
  flutter_test:
    sdk: flutter
  mobx_codegen:
  build_runner: ^1.9.0
  #flutter packages pub run build_runner build

flutter:

  uses-material-design: true

  assets:
    - images/smartDeck/images/

  fonts:
    - family: Andina
      fonts:
        - asset: fonts/andina.ttf

而且有4-5个依赖版本错误。我怎么能解决这个版本错误的事情在一个点击或者我可以只是以某种方式跳过这个版本问题,并得到的事情完成。请帮助,提前感谢。

qeeaahzv

qeeaahzv1#

每当依赖项之间发生冲突时,最简单的解决方案就是删除这两个依赖项的版本号,然后键入“any”,前面不带引号。

例如让我们假设以下两个依赖性冲突:

shared_preferences: ^0.5.7+3  
requests: ^3.3.0

然后执行以下操作:

shared_preferences: any  
requests: any

之后,dopub get问题就解决了。现在,最重要的是,不要在这个表单上留下任何依赖项。而是后藤pubspec.lock文件并搜索这两个依赖项。Flutter自己选择不冲突的版本,复制这些版本并替换到pubsec.yaml

dsf9zpds

dsf9zpds2#

您可以在pubspec.yaml中使用dependency_overrides来强制特定的软件包版本。软件包版本将覆盖整个应用中对依赖项的任何引用。
在您的情况下,您可以使用

dependencies:
  flutter:
    sdk: flutter
  ...

  cupertino_icons: ^1.0.0

dependency_overrides:
  intl: ^0.17.0-nullsafety.2

有关详细信息,请参见dependency_overrides。

qij5mzcb

qij5mzcb3#

替换intl:0.17.0-带intl的nullsafety.2版本:0.16.1并从依赖项覆盖中删除intl。现在,运行pub get命令。

0x6upsns

0x6upsns4#

您可以简单地更改导致与另一个版本冲突的包的版本,该版本与您的dart SDK兼容。我尝试了一下,问题解决了。

blpfk2vs

blpfk2vs5#

也有同样的问题运行了以下命令:

flutter pub upgrade --major-versions

如果您不介意在解决版本冲突问题的同时拥有所有依赖项的最新版本,那么这应该是一个快速的解决方法。

eivnm1vs

eivnm1vs6#

我在重置Mac mini后遇到了这个问题。
如果您仍然拥有上次成功运行时的pubspec.lock文件(或者从另一个开发人员那里获得,在该开发人员的计算机上,项目仍在运行)。
1.拍打得干干净净。
1.将pubspec.lock替换为旧版本。
1.再次运行项目。

相关问题