Android Studio中Kotlin项目Unresolved reference错误的解决方法
问题:Android Studio中R.layout/R.id引用未解析 + 找不到Rebuild Project选项
使用Android Studio和Kotlin开发首个应用时,出现6个「Unresolved reference」错误,均为R.layout、R.id相关引用未解析。已按示例放置文件,相关路径、代码片段及编译错误如下:
文件路径
- activity_main.xml:
C:\Users\D 11\AndroidStudioProjects\positionapp\app\src\main\res\layout\ - MainActivity.kt:
C:\Users\D 11\AndroidStudioProjects\positionapp\app\src\main\java\com\example\positionapp\
代码片段
activity_main.xml 起始代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ToggleButton android:id="@+id/toggleButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="Ein" android:textOff="Aus" /> <EditText android:id="@+id/editText_dt" android:layout_width="match_parent" android:layout_height="59dp" android:hint="dt in Minuten oder Sekunden" /> <EditText android:id="@+id/editText_tnr" android:layout_width="match_parent" android:layout_height="61dp" android:hint="tnr" /> ...
MainActivity.kt 第36-46行代码
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) locationViewModel = ViewModelProvider(this).get(LocationViewModel::class.java) toggleButton = findViewById(R.id.toggleButton) editTextDt = findViewById(R.id.editText_dt) editTextTnr = findViewById(R.id.editText_tnr) editTextCdz = findViewById(R.id.editText_cdz) scrollableText = findViewById(R.id.scrollableText) ...
编译错误输出
... > Task :app:compileDebugKotlin FAILED e: file:///C:/Users/D%2011/AndroidStudioProjects/positionapp/app/src/main/java/com/example/positionapp/MainActivity.kt:38:26 Unresolved reference 'layout'. e: file:///C:/Users/D%2011/AndroidStudioProjects/positionapp/app/src/main/java/com/example/positionapp/MainActivity.kt:42:39 Unresolved reference 'id'. e: file:///C:/Users/D%2011/AndroidStudioProjects/positionapp/app/src/main/java/com/example/positionapp/MainActivity.kt:43:37 Unresolved reference 'id'. e: file:///C:/Users/D%2011/AndroidStudioProjects/positionapp/app/src/main/java/com/example/positionapp/MainActivity.kt:44:38 Unresolved reference 'id'. e: file:///C:/Users/D%2011/AndroidStudioProjects/positionapp/app/src/main/java/com/example/positionapp/MainActivity.kt:45:38 Unresolved reference 'id'. e: file:///C:/Users/D%2011/AndroidStudioProjects/positionapp/app/src/main/java/com/example/positionapp/MainActivity.kt:46:41 Unresolved reference 'id'. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:compileDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
解决方案
一、找到Rebuild Project选项
有两种方式可以触发Rebuild:
- 顶部菜单栏点击
Build,下拉菜单中选择Rebuild Project;若未显示,先执行File→Sync Project with Gradle Files再重试 - 调出右侧
Gradle面板(通过View→Tool Windows→Gradle打开),依次展开项目→Tasks→build,双击rebuild任务
二、修复R.layout/R.id未解析错误
这类错误核心是Android Studio未正确生成项目的R类,按以下步骤排查修复:
- 检查XML文件语法
打开activity_main.xml,查看编辑器右侧Issues面板的红色报错,确认所有标签闭合、属性拼写正确(比如dp单位、字符串无转义问题),资源命名符合规范(只能用小写字母、数字、下划线) - 确认R类导入正确
检查MainActivity.kt顶部的导入语句,确保导入的是项目自身的R类:import com.example.positionapp.R,避免误导入android.R(系统资源类) - 清理+重建项目
先执行Build→Clean Project清理旧的编译文件,再执行Rebuild Project强制重新生成R类 - 修复Gradle同步问题
若顶部提示Gradle sync failed,点击Sync Now完成同步,同步失败会导致R类无法生成 - 检查项目路径
当前项目路径包含空格(D 11),部分场景下会导致资源生成异常,可尝试将项目迁移到无空格、无特殊字符的路径(如C:\AndroidProjects\positionapp\) - 核对控件ID
确认MainActivity中引用的editText_cdz、scrollableText等ID,在activity_main.xml中已通过android:id="@+id/xxx"定义完整
内容的提问来源于stack exchange,提问作者Bill2022
相关产品推荐
相关产品推荐

