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

Flutter依赖版本冲突求助:intl_translation与flutter_localizations兼容问题

Flutter pub get版本冲突解决方案

问题描述

执行flutter pub get时触发版本解析失败,错误日志:

% flutter pub get
Resolving dependencies... (1.5s)
Note: meta is pinned to version 1.10.0 by flutter_localizations from the flutter SDK.
See https://dart.dev/go/sdk-version-pinning for details.


Because every version of flutter_localizations from sdk depends on meta 1.10.0 and analyzer >=6.3.0 depends on meta ^1.11.0, flutter_localizations from sdk is incompatible with analyzer >=6.3.0.
And because every version of member_end from path depends on intl_translation ^0.19.0 which depends on analyzer ^6.3.0, flutter_localizations from sdk is incompatible with member_end from path.
So, because member_end_app depends on both flutter_localizations from sdk and member_end from path, version solving failed.

本地开发环境:

% flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.16.9, on macOS 12.7.1 21G920 darwin-x64, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)
[✓] VS Code (version 1.85.1)
[✓] Connected device (2 available)
[✓] Network resources

• No issues found!

冲突根因:
intl_translation ^0.19.0依赖analyzer >=6.3.0,而analyzer >=6.3.0要求meta ^1.11.0,但flutter_localizations被Flutter SDK固定绑定meta 1.10.0,导致二者依赖链冲突,需同时保留intl_translation和flutter_localizations功能。

项目pubspec.yaml配置:

name: member_end_app
description: "flutter front member end application base."
publish_to: 'none'

version: 1.0.0+1

environment:
  sdk: '>=3.2.3 <4.0.0'

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  member_end:
    path: ../member_end
  member_end_flutter:
    path: ../member_end_flutter
  json_annotation: ^4.8.1
  riverpod: ^2.4.9
  riverpod_annotation: ^2.3.3
  cupertino_icons: ^1.0.2
  go_router: ^13.0.1
  font_awesome_flutter: ^10.6.0
  flutter_riverpod: ^2.4.9

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^3.0.1
  json_serializable: ^6.7.1
  build_runner: ^2.4.7
  integration_test:
    sdk: flutter
  riverpod_generator: ^2.3.9
  custom_lint: ^0.5.7
  riverpod_lint: ^2.3.7
  go_router_builder: ^2.4.1
  build_verify: ^3.1.0

flutter:
  uses-material-design: true
  assets:
    - assets/images/

flutter_intl:
  enabled: true

解决方案

方法1:降级intl_translation版本

修改member_end包的pubspec.yaml,将intl_translation版本从^0.19.0改为^0.18.1。该版本依赖的analyzer范围是>=5.12.0 <6.0.0,不会与meta 1.10.0产生冲突。

方法2:升级Flutter SDK至稳定版3.17+

Flutter 3.17及以后的稳定版本中,flutter_localizations已将meta依赖更新至1.11.0+,可直接解决版本冲突。执行以下命令升级:

flutter channel stable
flutter upgrade

方法3:强制指定meta版本(风险项)

在项目根目录的pubspec.yaml中添加dependency_overrides,强制使用meta 1.11.0。此方法可能引发未知兼容性问题,需全面测试验证:

dependency_overrides:
  meta: ^1.11.0

方法4:用flutter_intl替代intl_translation

项目已启用flutter_intl插件,可直接用它替代intl_translation的本地化代码生成功能。无需依赖intl_translation包,直接执行flutter pub run flutter_intl:generate即可生成所需本地化文件,彻底规避依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 16:40:32