flutter error: intl is pinned to version 0.20.2 by flutter_localizations from the flutter SDK...

原创文章
声明:作者声明此文章为原创,未经作者同意,请勿转载,若转载,务必注明本站出处,本平台保留追究侵权法律责任的权利。
全栈老韩
全栈工程师,擅长iOS App开发、前端(vue、react、nuxt、小程序&Taro)开发、Flutter、React Native、后端(midwayjs、golang、express、koa)开发、docker容器、seo优化等。

本文记录一下在flutter切换channel后的工程编译报错问题。

本地flutter环境

terminal 复制代码
Flutter 3.32.0-0.1.pre • channel beta • https://github.com/flutter/flutter.git
Framework • revision eeb81b9a8a (2 weeks ago) • 2025-04-11 12:11:52 -0700
Engine • revision 72ee26e314 (3 weeks ago) • 2025-04-09 15:57:49 -0700
Tools • Dart 3.8.0 (build 3.8.0-278.1.beta) • DevTools 2.45.0
flutter version

问题1

Resolving dependencies...
Note: intl is pinned to version 0.20.2 by flutter_localizations from the flutter SDK.
See https://dart.dev/go/sdk-version-pinning for details.

Because no versions of flutter_styled_toast match >2.2.1 <3.0.0 and flutter_styled_toast 2.2.1 depends on flutter_localizations from sdk, flutter_styled_toast ^2.2.1 requires flutter_localizations from sdk.
And because every version of flutter_localizations from sdk depends on intl 0.20.2, flutter_styled_toast ^2.2.1 requires intl 0.20.2.
So, because xxx_app depends on both intl ^0.19.0 and flutter_styled_toast ^2.2.1, version solving failed.
Failed to update packages.

报错截图:
intl error

这个问题指的是,flutter_styled_toast依赖的intl的库是0.20.2,但是当前工程依赖的intl版本是^0.19.0,所以面对这样的报错,升级intl的库就好。

解决方式:

pubspec.yaml 复制代码
...
intl: ^0.20.2 # 之前是^0.19.0
...
intl png

问题2

Resolving dependencies...
Because scroll_datetime_picker 0.2.1 depends on intl ^0.19.0 and no versions of scroll_datetime_picker match >0.2.1 <0.3.0, scroll_datetime_picker ^0.2.1 requires intl ^0.19.0.
So, because mustche_app depends on both intl ^0.20.2 and scroll_datetime_picker ^0.2.1, version solving failed.
Failed to update packages.

问题截图:
scroll_datetime_picker version image

问题分析:
在问题1中,修改intl的版本为^0.20.2后,但是另外一个package scroll_datetime_picker依赖的是^0.19.0,所以又出现了版本冲突。

那么有2种解决方式:

  • 去查询scroll_datetime_picker ^0.2.1这个package是否有支持intl: ^0.20.2的版本,有的话,就更新。但是这种方式只能解决当前这个package的版本依赖,并不能确保其他package也能支持intl: ^0.20.2
    (当前0.2.1版本的scroll_datetime_picker没有支持intl: ^0.20.2)
    https://pub.dev/packages/scroll_datetime_picker
scroll_datetime_picker version image
  • 覆盖所有的intl版本依赖。

那么我们使用第二种方式,将所有依赖的intl package都覆盖掉。

解决方式

dependency_overrides image
如上截图,添加dependency_overrides:

pubspec.yaml 复制代码
...
dependency_overrides:
  win32: ^5.5.4
  intl: ^0.20.2
...

这样修改后,以上的2个报错都解决了,工程正常运行。

欢迎交流。

暂无评论,快来发表第一条评论吧