Android中string.xml字符串资源无法修改的问题求助
字符串资源修改后不生效的排查方案
- 检查多语言资源文件:你可能只修改了默认的
values/strings.xml,但当前设备/模拟器的系统语言对应的是其他语言目录(比如values-en、values-zh-rCN),这些目录下的waitlist_closed字符串没同步更新,导致加载的是旧值。 - 排查资源压缩/混淆:如果项目开启了R8或ProGuard的资源优化,字符串可能被硬编码或缓存。临时在
build.gradle的buildTypes块里把shrinkResources和minifyEnabled设为false,重新编译试试。 - 检查代码后续逻辑:确认调用
context.getString(R.string.waitlist_closed)设置文本后,有没有其他代码(比如接口回调、本地缓存读取)又修改了statusText的内容,把新值覆盖了。可以加日志或者断点跟踪文本的变化过程。 - 彻底重构项目:执行
Build > Clean Project再Build > Rebuild Project,跳过增量构建,强制重新生成所有资源文件。 - 核对资源调用:确认代码里确实用的是
R.string.waitlist_closed,不是不小心写死了"Waitlist closed"硬编码字符串。 - 验证资源ID对应关系:查看
app/build/generated/not_namespaced_r_class_sources/debug/r/你的包名/R.java里的waitlist_closed条目,确认它对应的字符串值已经更新为test。
内容的提问来源于stack exchange,提问作者Jean
相关产品推荐
相关产品推荐

