Android Studio中‘R cannot be resolved’错误无法解决求助
嘿,咱们来搞定这个烦人的「R cannot be resolved」错误!明明一直按老方法写代码,突然出问题确实超闹心,尤其是新建文件粘贴代码也没用的情况。下面给你列几个经过验证的修复步骤,挨个试试:
检查XML文件的语法问题
这是最常见的原因!R类生成失败几乎都是因为res目录下的XML文件(布局、字符串、Drawable等)有语法错误——比如标签没闭合、属性拼写错了、资源名称用了大写字母或空格(只能用小写和下划线)。打开你最近修改过的所有XML文件,把红标提示的错误都修好。清理并重建项目
有时候缓存会搞乱一切,试试这个操作:- 点击顶部菜单栏的
Build→Clean Project - 清理完成后再点击
Build→Rebuild Project
这会清除旧的缓存文件,强制Android Studio重新生成R类。
- 点击顶部菜单栏的
验证依赖和SDK配置
看你的代码里用了android.support.v7.app.AppCompatActivity,先检查模块级别的build.gradle文件是否正确引入了support库。如果项目兼容的话,也可以考虑迁移到AndroidX(更稳定,还能避免一些support库的奇怪问题)。另外,确保SDK Manager里已经下载了对应的Android版本和Support Repository。清除缓存并重启Android Studio
这是Studio的终极缓存修复手段:
点击File→Invalidate Caches...,勾选「Invalidate and Restart」,等待Studio重启并重新索引项目——很多奇怪的索引问题导致的R类生成失败,都能这么解决。检查R类的导入语句
千万别不小心导入了android.R(系统自带的R类),它会和你项目自己的R类冲突。你的代码应该导入的是com.你的包名.R(把「你的包名」换成你实际的应用包名)。如果看到import android.R;,直接删掉这行就行。
你提供的代码片段(未完成):
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan...
内容的提问来源于stack exchange,提问作者Shotz of Lead

