Flutter国际化arb文件资源ID大写开头报错如何解决?
问题解决方案
核心原因
你遇到的报错是因为Flutter自带的本地化生成工具会将ARB文件中的每一个资源ID转换为Dart类的Getter方法,因此资源ID必须完全符合Dart标识符的命名规则,你当前使用的大写开头、连续大写的ID不符合要求。
具体修复步骤
- 第一步:修改所有ARB文件(intl_en.arb、intl_zh.arb)中的资源ID为标准小驼峰格式,首字母小写,后续单词首字母大写,示例修改如下:
// 修改前 "UPxxt": "Uxxx Cxxxit", "UPxit": "Unxxx Dxxxt", "UPSxit": "Uxxx Sxxxed xxxit" // 修改后 "upXxt": "Uxxx Cxxxit", "upXit": "Unxxx Dxxxt", "upSxit": "Uxxx Sxxxed xxxit"
注意:所有语言ARB文件的同一个资源的ID必须完全一致,避免出现匹配错误。
- 第二步:执行清理和重新拉取依赖命令,重新生成本地化文件:
flutter clean flutter pub get
重新执行flutter run即可正常运行。
命名规则要求
ARB资源ID必须满足以下条件:
- 采用小驼峰命名格式
- 不能以数字或下划线开头
- 不能包含字母、数字之外的特殊字符
内容的提问来源于stack exchange,提问作者CheverJohn
相关产品推荐
相关产品推荐

