检测到多个'en'区域设置arb文件,Flutter国际化文件生成失败求助
解决Flutter国际化文件生成失败的方案
1. 核对l10n配置文件
- 检查项目根目录的
l10n.yaml(如果用flutter_intl插件则是flutter_intl.yaml),重点确认:arb-dir路径是否正确指向arb文件所在目录,比如lib/l10ntemplate-arb-file指定的模板文件(如app_en.arb)是否存在output-localization-file和output-class的命名无特殊字符、符合规范
- 对比本地旧配置与远程新配置的差异,确认是否有路径、文件名的变更导致不匹配
2. 校验arb文件有效性
- 检查
l10n文件夹内所有.arb文件:- 确保是合法JSON格式,无逗号遗漏、引号不匹配等语法错误
- 所有arb文件的键名完全一致,不存在新增/删除键导致的不匹配
- 模板文件包含必要的注释字段,比如
@xxx格式的描述信息
3. 清理缓存后重新生成
- 先清理Flutter缓存:
flutter clean - 删除
.dart_tool/flutter_gen/gen_l10n目录下已生成的旧文件,再执行生成命令:flutter gen-l10n
4. 匹配Flutter版本
- 检查本地Flutter版本是否与项目要求一致,同事可能升级了版本导致命令或配置格式变化:
flutter --version - 版本不一致的话,切换到项目指定版本(可用fvm管理):
fvm use <指定版本号>
5. 检查依赖配置
- 确认
pubspec.yaml中flutter_localizations和intl依赖配置正确、版本兼容:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.1 - 更新依赖:
flutter pub get
6. 检查IDE插件状态
如果用Android Studio/VS Code的工具生成,确保Flutter插件已更新到最新版本,避免插件与Flutter版本不兼容
内容的提问来源于stack exchange,提问作者Tanjim ahmed
相关产品推荐
相关产品推荐

