升级Flutter后intl_utils与flutter_localizations版本不兼容求助
解决Flutter升级后intl_utils的版本冲突问题
别着急,不一定非得降级Flutter,我给你几个可行的解决方案,你可以挨个试试:
方案1:使用intl_utils的Null Safety适配预发布版本
目前intl_utils已经推出了适配Null Safety的预发布版本,它依赖的intl_translation也已经兼容intl的Null Safety版本。你可以直接在pubspec.yaml里指定这个预发布版本:
dependencies: intl_utils: ^1.7.0-nullsafety.0 # 可前往pub.dev确认最新的预发布版本号
修改后执行flutter pub get,大概率能解决版本冲突问题。
方案2:尝试依赖覆盖强制指定版本
如果暂时找不到合适的预发布版本,你可以尝试用依赖覆盖功能,强制让所有依赖统一使用intl的Null Safety版本。在pubspec.yaml的末尾添加:
dependency_overrides: intl: ^0.17.0-nullsafety.2
这种方式是强制对齐版本,不过要注意可能存在潜在的运行时兼容风险,添加后记得全面测试项目的核心功能。
方案3:暂时移除flutter_localizations(非必需情况下)
如果你的项目目前用不到flutter_localizations,可以先从pubspec.yaml里移除这个依赖,这样就能直接避开和intl_utils的版本冲突。等后续intl_utils正式发布支持Null Safety的稳定版后,再重新添加回来即可。
方案4:降级Flutter(最后备选)
要是以上方案都走不通,再考虑降级Flutter到兼容的版本。比如切换到稳定版:
flutter channel stable flutter upgrade
或者指定一个具体的旧版本:
flutter downgrade 1.25.0-8.1.pre
这个版本的flutter_localizations依赖的intl版本还未升级到Null Safety,能和intl_utils 1.6.3完美兼容。
内容的提问来源于stack exchange,提问作者Vincenzo
相关产品推荐
相关产品推荐

