【问题标题】:Flutter 2.0 upgrade, pub get failed with nonsense dependency behaviorFlutter 2.0 升级,pub 因无意义的依赖行为而失败
【发布时间】:2021-06-03 13:30:50
【问题描述】:

在升级到flutter 2.0 后,该项目就像一个魅力一样开始出现问题。以下是pub get 的错误。

[delivered] flutter pub get
Running "flutter pub get" in delivering...     
Because every version of flutter_localizations from sdk depends on intl 0.17.0 and firebase_auth_web >=0.3.0-dev.1 <0.4.0-1.0.nullsafety.0 depends on intl ^0.16.1, flutter_localizations from sdk is incompatible with firebase_auth_web >=0.3.0-dev.1 <0.4.0-1.0.nullsafety.0.
Because firebase_auth >=0.18.4 <=0.18.4 depends on firebase_auth_web ^0.3.2+2 and firebase_auth ^0.18.4+1 depends on firebase_auth_web ^0.3.2+3, firebase_auth ^0.18.4 requires firebase_auth_web ^0.3.2+2.
Thus, flutter_localizations from SDK are incompatible with firebase_auth ^0.18.4.
So, because iDelivered depends on both flutter_localizations any from SDK and firebase_auth ^0.18.4, version solving failed.
pub get failed (1; So, because delivered depends on both flutter_localizations any from SDK and firebase_auth ^0.18.4, version solving failed.)
exit code 1

这是我的pubspec.yaml供参考:

version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter

  google_fonts: ^1.1.1

  http: ^0.12.2
  shared_preferences: ^0.5.12+4

  firebase_core: ^0.5.3
  firebase_auth: ^0.18.4
  cloud_firestore: ^0.14.4
  firebase_messaging: ^7.0.3

  parse_server_sdk_flutter: ^2.1.0

  place_picker: ^0.9.16
  google_maps_flutter: ^1.0.6

  animations: ^1.1.2
  flutter_slidable: ^0.5.7

【问题讨论】:

标签: flutter flutter-dependencies


【解决方案1】:

我的建议是几周内不要更新你的 Flutter 版本

降级你的颤振(主频道):

flutter downgrade 1.22.6

【讨论】:

  • 感谢您的指导
【解决方案2】:

由于您升级到Flutter 2.0,flutter sdk 是flutter_localizations 的来源。因此,您必须升级您的 firebase 依赖项,例如firebase_auth, firebase_core 至少到 1.0.0 版。

我的建议是,如果您使用的软件包尚未升级到 null-safety它们最近没有更新,您应该坚持使用 1.22.6 稳定版的 Flutter for现在。

【讨论】:

  • 那么如何从 2.0 反转回 1.23.0 等?我正在使用 vs 代码,我的应用运行顺利,这次升级搞砸了。
  • 我想知道我是否可以为这个项目关闭这个空安全带?
  • 你可以在终端上运行flutter downgrade
  • 即使你使用的是最新版本,你仍然可以使用非空安全飞镖,问题只是你正在使用的包..有些已经移植到空安全,有些没有,这些版本相互依赖..因此,冲突。
  • 这个 Flutter Engaged 有什么大惊小怪的,我认为 Flutter 应该立即解决这个问题
【解决方案3】:

您可以尝试添加 dependency_overrides 来解决此冲突:

dependency_overrides:
 intl: "<0.17.0"

【讨论】:

    【解决方案4】:

    使用flutter downgrade version

    来降级flutter

    【讨论】:

      【解决方案5】:

      我对这个问题的解决方案..

      同时下载 2.0.2 Flutter SDK 和 1.22.6 Flutter SDK。更改 Flutter SDK 项目。

      【讨论】:

      • 您能详细说明一下吗?您是使用 fvm cli 还是自己手动处理?我有一个新项目,我想从最新版本开始,但暂时不需要更新现有项目。
      • @RamithDR 你的操作系统是什么?我的操作系统是mac os。我手动完成。创建 .bash_alias 文件并设置 flutternewflutterold。然后设置安卓工作室。当我发布 apk 时,flutternew build apkflutterold build apk
      • 我也在 Mac 上。谢谢,我试试这个方法。
      【解决方案6】:

      在我的应用中,

      1. 我将以下三个 pub 升级到最新版本
        firebase_analytics: ^7.1.1,
        firebase_core: ^1.0.1,
        firebase_messaging: ^9.0.0
      
      1. 我在 IOS pod 文件中将谷歌移动广告 SDK 降级为 7.6.9,它对我有用。 https://github.com/FirebaseExtended/flutterfire/issues/4931

      【讨论】:

        猜你喜欢
        • 2021-06-03
        • 2020-10-23
        • 2019-10-21
        • 2021-02-19
        • 2019-02-23
        • 2013-02-20
        • 2021-01-20
        • 2021-05-04
        • 2021-06-11
        相关资源
        最近更新 更多