Flutter项目fstore依赖版本冲突问题求助
解决Flutter项目fstore的intl依赖冲突问题
冲突场景
场景1:初始版本冲突
项目指定intl: 0.17.0,但flutter_localizations(来自SDK)依赖intl 0.18.0,导致版本解析失败,报错如下:
Resolving dependencies... Because fstore depends on flutter_localizations from sdk which depends on intl 0.18.0, intl 0.18.0 is required. So, because fstore depends on intl 0.17.0, version solving failed. Process finished with exit code 1
场景2:修改intl版本后的冲突
将intl版本改为0.18.0后,依赖的git版本charts_flutter要求intl >=0.15.2 <0.18.0,再次导致版本解析失败,报错如下:
Resolving dependencies... Because every version of charts_flutter from git depends on intl >=0.15.2 <0.18.0 and fstore depends on intl 0.18.0, charts_flutter from git is forbidden. So, because fstore depends on charts_flutter from git, version solving failed. Process finished with exit code 1
项目配置信息
pubspec.yaml核心内容
name: fstore publish_to: "none" description: Mobile commerce app by Flutter version: 1.0.5+8 environment: sdk: ">=2.17.6 <3.0.0" dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter inspireui: 1.1.8 # Base intl: 0.17.0 # ... 其他依赖省略 ### Flutter 3 fix warning charts_flutter: git: url: https://github.com/inspireui/charts.git path: charts_flutter # ... 其他依赖省略
Flutter Doctor检测结果
Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.10.6, on macOS 13.3.1 22E261 darwin-arm64, locale en-IN) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4) [✓] Xcode - develop for iOS and macOS (Xcode 14.2) [✓] Chrome - develop for web [✓] Android Studio (version 2022.3) [✓] Connected device (2 available) [✓] Network resources • No issues found!
可行解决方案
方案1:修改charts_flutter的依赖约束(推荐)
- Fork目标仓库到自己的账号下
- 进入fork后的仓库,修改
charts_flutter/pubspec.yaml中的intl依赖为:
或更宽松的范围intl: ^0.15.2>=0.15.2 <0.19.0,确保兼容intl 0.18.0 - 在项目的pubspec.yaml中,将charts_flutter的依赖指向自己的fork仓库:
charts_flutter: git: url: https://github.com/你的账号名/charts.git path: charts_flutter - 执行
flutter pub get完成依赖安装
方案2:使用dependency_overrides强制统一版本
在项目pubspec.yaml的末尾添加以下配置,强制所有依赖使用intl 0.18.0:
dependency_overrides: intl: 0.18.0
执行flutter pub get后,需全面测试charts_flutter相关功能,确保无兼容性问题。
方案3:降级Flutter SDK版本
降级到flutter_localizations依赖intl 0.17.0的Flutter版本(如3.3.x系列):
flutter downgrade 3.3.10
此方法会限制SDK版本,不利于后续项目升级,仅作为临时解决方案。
内容的提问来源于stack exchange,提问作者Kanwarpreet Singh
相关产品推荐
相关产品推荐

