flutter error: intl is pinned to version 0.20.2 by flutter_localizations from the flutter SDK...
本文记录一下在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

问题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.
报错截图:

这个问题指的是,flutter_styled_toast依赖的intl的库是0.20.2,但是当前工程依赖的intl版本是^0.19.0,所以面对这样的报错,升级intl的库就好。
解决方式:
pubspec.yaml
...
intl: ^0.20.2 # 之前是^0.19.0
...

问题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.
问题截图:

问题分析:
在问题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

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

如上截图,添加dependency_overrides:
pubspec.yaml
...
dependency_overrides:
win32: ^5.5.4
intl: ^0.20.2
...
这样修改后,以上的2个报错都解决了,工程正常运行。
欢迎交流。
暂无评论,快来发表第一条评论吧