Flutter升级后如何解决i18n_extension与optimized_cached_image依赖冲突?
解决Flutter依赖冲突:i18n_extension与optimized_cached_image的sprintf版本冲突
执行flutter pub get时出现如下依赖冲突错误:
$ flutter pub get Resolving dependencies... Because no versions of i18n_extension match >9.0.2 <10.0.0 and i18n_extension 9.0.2 depends on sprintf ^7.0.0, i18n_extension ^9.0.2 requires sprintf ^7.0.0. And because optimized_cached_image >=3.0.0 depends on sprintf ^6.0.0, i18n_extension ^9.0.2 is incompatible with optimized_cached_image >=3.0.0. So, because shokaze depends on both i18n_extension ^9.0.2 and optimized_cached_image ^3.0.0, version solving failed. exit code 1
当前pubspec.yaml核心依赖配置:
environment: sdk: '>=2.18.2 <3.0.0' dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 #^0.17.0 i18n_extension: ^9.0.2 #^5.0.1 optimized_cached_image: ^3.0.0 #^3.0.1
未显式依赖sprintf,可通过以下方式解决冲突:
解决方案
方案1:升级optimized_cached_image到兼容版本
查看optimized_cached_image版本更新记录,确认是否有新版本已将sprintf依赖升级至^7.0.0。若有,直接修改pubspec.yaml中的版本号,例如:
optimized_cached_image: ^3.2.0 # 替换为实际兼容的最新版本
修改后执行flutter pub get验证。
方案2:降级i18n_extension到依赖sprintf ^6.0.0的版本
若optimized_cached_image暂无兼容版本,可降级i18n_extension至9.0.2之前、依赖sprintf ^6.0.0的版本,例如:
i18n_extension: ^8.0.0 # 需确认该版本依赖sprintf ^6.0.0
降级后需测试项目国际化功能,避免API变更引发异常。
方案3:使用dependency_overrides强制统一sprintf版本
若前两种方案不可行,可在pubspec.yaml中添加强制版本配置,但此方式可能存在兼容性风险,需全面测试:
dependency_overrides: sprintf: ^7.0.0 # 或选择^6.0.0,根据实际测试结果决定
添加后执行flutter pub get,并验证项目所有功能正常。
内容的提问来源于stack exchange,提问作者Stéphane de Luca
相关产品推荐
相关产品推荐

