如何解决Kotlin Android中的‘Unresolved reference: android’错误?
解决方案
1. 替换废弃的Kotlin Android Extensions(解决synthetic导入错误)
Kotlin Android Extensions已被官方废弃,AGP 8.x版本不再支持,你已经在配置中开启了View Binding,直接替换原有用法即可:
- 删除所有
import kotlinx.android.synthetic.main.*语句 - 改用View Binding实现控件调用,示例代码:
private lateinit var binding: ActivityLessonexampleBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityLessonexampleBinding.inflate(layoutInflater) setContentView(binding.root) // 原写法如textView.text 替换为 binding.textView.text }
2. 修正Namespace与ApplicationId不一致问题(解决Manifest报错)
你的app模块build.gradle中namespace 'com.example.namespace'和applicationId "com.example.ulearnc"不匹配,会导致Manifest中Activity路径识别错误:
- 将
namespace 'com.example.namespace'修改为namespace 'com.example.ulearnc',与applicationId保持一致 - 同步Gradle后,检查AndroidManifest.xml中所有Activity的
android:name属性,确保是相对于namespace的路径(如.ui.LessonExampleActivity)或完整包名路径
3. 清理缓存并重新同步项目
- 点击Android Studio顶部菜单栏
File->Invalidate Caches...,选择Invalidate and Restart - 重启后点击
Sync Project with Gradle Files按钮重新同步
4. 检查版本兼容性(可选优化)
你的AGP版本为8.0.2,Kotlin版本1.8.10是兼容的,若想更稳定可升级到匹配的最新稳定版:
- 根build.gradle中
ext.kotlin_version改为1.9.0(AGP 8.0.x兼容Kotlin 1.8.x-1.9.x) - 同步Gradle确保依赖拉取正常
额外检查项
- 确认JDK版本:Android Studio最新版推荐使用JDK 17,可在
File->Project Structure->SDK Location中检查并切换到Studio自带JDK - 若为老项目,检查AndroidManifest.xml根标签
manifest的package属性,AGP 7.0+后namespace会替代该属性,确保两者一致
内容的提问来源于stack exchange,提问作者AndreiRAD
相关产品推荐
相关产品推荐

