无法生成本地化文件报错求助:RangeError(end)参数值不在9..11范围内
解决Flutter生成本地化文件时的RangeError问题
检查ARB文件语法错误
这个RangeError大概率是ARB本地化文件里的格式化字符串语法错误导致的,尤其是intl库的复数(plural)、性别(gender)等带范围的格式化逻辑。比如:- 错误使用了数字范围定义,比如plural表达式里写了超出预期的区间值
- 占位符索引不匹配,或者
@开头的注释字段里的参数定义错误
重点排查所有包含数量、区间描述的本地化字符串,确保{x, plural, =0{...} other{...}}这类语法完全符合intl规范。
调整依赖版本兼容性
- 尝试将
intl版本降级到^0.17.0,部分Flutter SDK版本与intl: ^0.18.0存在兼容问题,修改后执行flutter pub get再重新生成 - 升级
local_auth到最新稳定版(如^2.16.0),旧版本可能与新的本地化依赖产生冲突
- 尝试将
清理缓存后重试
执行以下命令清理项目缓存,避免旧文件干扰:flutter clean rm -rf .dart_tool flutter pub get之后重新运行生成本地化文件的命令(如
flutter gen-l10n)检查
l10n.yaml配置
确认配置文件中的locale范围、输出路径、plural规则等参数是否正确,错误的配置可能导致生成过程中解析范围异常
内容的提问来源于stack exchange,提问作者altoon
相关产品推荐
相关产品推荐

