Unresolved reference: synthetic AndroidAndroid Studiokotlin-android-extensions
Posted guangdeshishe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unresolved reference: synthetic AndroidAndroid Studiokotlin-android-extensions相关的知识,希望对你有一定的参考价值。
问题描述
今天编译旧的android项目发现编译时报错了:
e: xxx...\\LoginActivity.kt: (14, 24): Unresolved reference: synthetic
对应报错源码地方:
import kotlinx.android.synthetic.main.activity_login.*
居然找不到kotlinx.android.synthetic
这个类了,又看了下kotlin扩展包下面确实没这个类了
分析原因
网上找了一圈基本都是教我们怎么使用,让我们导入'kotlin-android-extensions'
插件;后来才发现原来是kotlin-android-extensions
这个插件已经过时了,之前还只是警告,现在完全不能用了,Google推荐我们使用View Binding
解决办法
- 在
build.gradle
文件中删除kotlin-android-extensions
插件 - 在
build.gradle
文件中启用View Binder
功能plugins id 'org.jetbrains.kotlin.android' android buildFeatures viewBinding true
- 在Activity中使用,通过布局文件生成的Binding去引用该布局下的所有变量
class LoginActivity : AppCompatActivity() 这个类是根据布局文件生成的,对应的是R.layout.activity_login private lateinit var mLoginBinding: ActivityLoginBinding override fun onCreate(savedInstanceState: Bundle?) super.onCreate(savedInstanceState) mLoginBinding = ActivityLoginBinding.inflate(getLayoutInflater()); setContentView(mLoginBinding.root)//设置布局文件 mLoginBinding.mUserName.addTextChangedListener ...
以上是关于Unresolved reference: synthetic AndroidAndroid Studiokotlin-android-extensions的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin的编译提示:Unresolved reference: xxx
解决pycharm无法导入本地包的问题(Unresolved reference 'tutorial')
Unresolved reference: viewmodel compose 省略viewModel