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

Android调用R.string.last_call返回错误值,求助原因

问题原因及解决办法

可能的原因:

  • R文件缓存或ID映射异常:Android的R类由编译系统自动生成,若项目编译缓存未及时更新,可能导致R.string.last_call对应的ID错误指向了language的资源。这种情况常出现在修改资源后未重新编译,或是IDE缓存出现异常时。
  • 多语言资源文件配置错误:检查项目中其他语言目录(如values-es、values-zh-rCN等)下的strings.xml,是否在这些文件里将last_call的字符串值错误设置为了Preferred language。当设备语言切换到对应区域时,会优先加载该目录下的资源。
  • 资源文件语法问题:即使你提供的代码片段看起来正常,若strings.xml存在未闭合标签、特殊字符未转义等语法错误,编译时可能导致资源映射混乱,出现ID指向错误的情况。

解决步骤:

  1. 清理并重建项目:在Android Studio中执行Build > Clean Project,再执行Build > Rebuild Project,强制重新生成R类,清除编译缓存。
  2. 检查全量strings.xml文件:遍历项目中所有values及其子目录下的strings.xml,确认last_call的字符串值在所有文件中都是Last Call。
  3. 验证资源文件语法:打开主strings.xml,检查是否存在语法错误(如标签未闭合、引号不匹配等),Android Studio会在右侧面板提示问题,修复后重新编译。
  4. 核对R类中的ID:在项目的build/generated/r目录下找到对应的R.java文件,搜索last_call和language的ID值,确认两者是否不同。如果ID相同,说明存在资源名称冲突,需要排查重复定义的资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:52:05