You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境运行旧Flutter项目遇flutter_localizations依赖冲突问题

旧Flutter项目依赖版本冲突解决方案

问题背景

在Windows设备运行旧Flutter项目时,flutter doctor检测无异常:

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.10.5, on Microsoft Windows [Version 10.0.22621.1848], locale en-US)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.6.4)
[√] Android Studio (version 2022.2)
[√] VS Code (version 1.80.0)
[√] Connected device (3 available)
[√] Network resources

• No issues found!

项目pubspec.yaml关键配置:

version: 1.0.3+8
publish_to: none

environment:
  sdk: '>=2.12.0 <3.0.0'

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  ...
  intl: 0.17.0
  ...

遇到的错误

  1. 首次执行flutter pub get报错:
flutter pub get
Resolving dependencies...
Because psxmpc depends on flutter_localizations from sdk which depends on intl 0.18.0, intl 0.18.0 is required.
So, because psxmpc depends on intl 0.17.0, version solving failed.
exit code 1

原因:当前Flutter版本(3.10.5)的flutter_localizations依赖intl 0.18.0,但项目指定了intl 0.17.0,版本冲突。

  1. 将intl升级到0.18.0后,再次执行flutter pub get报错:
[PSX-Multipurpose-Classified] flutter pub get
Resolving dependencies...
Because flutter_paystack >=1.0.5 depends on intl ^0.17.0 and psxmpc depends on intl 0.18.0, flutter_paystack >=1.0.5 is forbidden.
So, because psxmpc depends on flutter_paystack 1.0.7, version solving failed.
exit code 1

原因:flutter_paystack 1.0.7依赖intl ^0.17.0,与升级后的intl 0.18.0冲突。

解决方案

1. 降级Flutter版本适配旧项目

项目原本适配SDK <3.0.0,直接降级到对应兼容的Flutter版本:

  • 执行命令:flutter downgrade 2.10.5(选择与项目SDK范围匹配的稳定版)
  • 降级完成后执行flutter pub get,依赖可正常解析。

2. 强制统一intl版本(依赖覆盖)

在pubspec.yaml中添加依赖覆盖,强制让flutter_paystack使用intl 0.18.0(注意需测试相关功能是否正常):

dependency_overrides:
  intl: 0.18.0

添加后执行flutter pub get,测试项目中flutter_paystack的支付功能是否正常运行。

3. 升级flutter_paystack到兼容版本

检查flutter_paystack是否有支持intl 0.18.0的更新版本,将项目依赖中的版本号替换为最新兼容版:

flutter_paystack: ^1.2.0 # 需确认实际兼容版本

执行flutter pub get完成依赖更新。

4. 调整项目SDK环境范围

修改pubspec.yaml中的SDK范围以适配当前Flutter版本(3.10.5要求SDK >=2.17.0):

environment:
  sdk: '>=2.17.0 <4.0.0'

同步升级其他依赖到兼容新版本SDK的版本,逐步解决冲突。

内容的提问来源于stack exchange,提问作者Amr Hassan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:13:07