Flutter依赖冲突求助:flutter_localizations与intl版本不兼容
解决Flutter依赖版本冲突(intl 0.17.0 vs 0.18.0)
方案一:升级项目intl版本至兼容范围
直接修改项目根目录下的pubspec.yaml文件,将intl ^0.17.0替换为intl ^0.18.0,或者更宽松的版本范围(比如intl >=0.17.0 <0.19.0)。修改后执行以下命令重新拉取依赖:
flutter pub get
Flutter 3.10.2配套的flutter_localizations本身依赖intl 0.18.0,且该版本完全符合你的SDK版本要求(>=2.17.1 <3.0.0),升级后能直接对齐版本,解决冲突。
方案二:用dependency_overrides强制统一版本
如果不想升级项目的intl版本,或升级后出现其他兼容问题,可在pubspec.yaml末尾添加版本强制覆盖配置,让所有依赖统一使用同一个intl版本:
dependency_overrides: intl: ^0.17.0
或者选择统一使用0.18.0版本:
dependency_overrides: intl: ^0.18.0
添加完成后执行flutter pub get,该配置会强制flutter_localizations使用你指定的版本,直接消除版本冲突。
方案三:检查并规范flutter_localizations引用
确保pubspec.yaml中flutter_localizations的引用是基于当前Flutter SDK的默认版本,不要手动指定旧版本,正确的引用格式如下:
dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter
这种方式会自动匹配当前Flutter SDK对应的flutter_localizations版本,从根源避免手动指定版本带来的冲突。
额外排查步骤
- 执行
flutter pub clean清除本地依赖缓存,再重新执行flutter pub get,确保依赖完全重新解析 - 若问题仍存在,可运行
flutter pub deps查看完整依赖树,排查是否有其他第三方依赖间接引入了不同版本的intl
内容的提问来源于stack exchange,提问作者Manju Garg
相关产品推荐
相关产品推荐

