Android Studio 3.0中R.string报错修复:mystring标红如何解决?
嘿,这个问题我太熟了!Android Studio里R.string.mystring标红,核心原因就是系统找不到这个字符串资源的定义,或者资源索引出了小问题。给你按优先级列几个靠谱的修复方法,一步步试:
修复
R.string.mystring标红的常见方案 1. 先确认字符串资源真的存在
首先直奔res/values/strings.xml(如果是多语言版本,记得对应语言的strings.xml,比如res/values-zh/strings.xml),检查有没有定义:
<string name="mystring">这里是你的字符串内容</string>
- 要是没有,直接把这段加进去就行;
- 要是有,仔细核对
name="mystring"的拼写——大小写完全敏感,别把mystring写成MyString或者my_string了。
2. 清理缓存+重建项目
AS的缓存有时候会“失忆”,资源索引没跟上。操作超简单:
- 顶部菜单栏点
Build→Clean Project,等清理完再点Build→Rebuild Project; - 要是还不行,就来个狠的:
File→Invalidate Caches...,勾选Invalidate and Restart,重启AS后基本能解决大部分缓存问题。
3. 检查R文件的导入是否正确
有时候不小心导入了系统的android.R,而不是你自己项目的R文件。看代码顶部的import语句:
- 如果有
import android.R;,立刻删掉; - 手动导入你项目的R文件,比如
import com.your.app.package.R;(把包名换成你自己的)。
4. 排查strings.xml的语法错误
如果strings.xml里有其他小错误(比如标签没闭合、特殊字符没转义,比如&要写成&),会导致整个资源文件解析失败,R文件生成异常。打开strings.xml,看右侧Messages面板的报错提示,把这些语法问题修复后再重建项目。
5. 多模块项目检查依赖
要是你的代码在子模块里,得确保子模块能访问到这个字符串资源:
- 如果资源在主模块,子模块的
build.gradle里要添加对主模块的依赖; - 或者直接把这个字符串资源移到子模块的
res/values/strings.xml里。
内容的提问来源于stack exchange,提问作者Mike Nemsky




