【问题标题】:How to solve multi dependency version conflicts simply?如何简单解决多依赖版本冲突?
【发布时间】:2021-03-07 02:30:21
【问题描述】:

我在 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个依赖版本错误。如何一键解决此版本错误问题,或者我可以以某种方式跳过此版本问题并完成任务。请帮助,在此先感谢。

【问题讨论】:

    标签: flutter flutter-layout flutter-dependencies flutter-test


    【解决方案1】:

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

    在你的情况下,你可以使用

    dependencies:
      flutter:
        sdk: flutter
      ...
    
      cupertino_icons: ^1.0.0
    
    dependency_overrides:
      intl: ^0.17.0-nullsafety.2
    

    更多信息请参见dependency_overrides

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          例如假设以下两个依赖冲突:

          shared_preferences: ^0.5.7+3  
          requests: ^3.3.0
          

          然后执行以下操作:

          shared_preferences: any  
          requests: any
          

          在此之后执行 pub get 并且问题将得到解决。现在,最重要的是,不要对这个表单留下任何依赖。而是转到 pubspec.lock 文件并搜索这两个依赖项。 Flutter 本身会选择不冲突的版本,将它们复制并替换到 pubsec.yaml

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-06-04
            • 1970-01-01
            • 2018-11-01
            • 1970-01-01
            • 2014-08-15
            • 2016-02-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多