Flutter 2.0 升级,pub 因无意义的依赖行为而失败

Posted

技术标签:

【中文标题】Flutter 2.0 升级,pub 因无意义的依赖行为而失败【英文标题】:Flutter 2.0 upgrade, pub get failed with nonsense dependency behavior 【发布时间】: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

【问题讨论】:

看看我的解决方案***.com/questions/66477175/… 查看:Flutter 2 upgrade - Flutter version solving failed error 【参考方案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】:

在我的应用中,

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

【讨论】:

以上是关于Flutter 2.0 升级,pub 因无意义的依赖行为而失败的主要内容,如果未能解决你的问题,请参考以下文章

从销售转行软件测试,果断摈弃无意义的坚持,我成功了!

升级到 Flutter 2.0 会破坏 Flutter Firebase Web 项目

flutter项目升级2.0过程填坑记录

Flutter升级到2.0后出现的问题

Flutter升级到2.0后出现的问题

如何在 VSCode/flutter 中升级包?