Android Studio中编写btnDatePicker报未解析引用错误如何解决?
问题解决办法
方案1:继续使用Kotlin Android Extensions(不推荐,已官方废弃)
- 首先确认
activity_main.xml布局文件中按钮的id为完全匹配的btnDatePicker,xml中的正确定义格式为android:id="@+id/btnDatePicker",注意大小写、拼写不能有偏差。 - 确认修改build.gradle后点击了右上角的
Sync Now同步项目配置,未同步的配置不会生效。 - 清理重建项目:依次点击顶部菜单栏
Build > Clean Project,执行完成后再点击Build > Rebuild Project,清除构建缓存。 - 无效化IDE缓存重启:依次点击顶部菜单栏
File > Invalidate Caches...,勾选清理文件系统缓存选项后重启Android Studio,解决IDE缓存导致的识别异常。
方案2:切换为官方推荐的View Binding(推荐)
Kotlin Android Extensions已被谷歌官方废弃,存在类型不安全、空不安全等问题,推荐使用View Binding替代,操作步骤如下:
- 移除
build.gradle(:app)中id 'kotlin-android-extensions'的配置行,避免冲突。 - 在同一个build.gradle文件的
android闭包中添加View Binding启用配置:
android { // 保留原有其他配置不变 buildFeatures { viewBinding true } }
- 点击
Sync Now同步Gradle配置。 - 修改
MainActivity代码,替换原有的扩展导入逻辑:
package com.example.ageinminutes import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.example.ageinminutes.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 初始化绑定类 binding = ActivityMainBinding.inflate(layoutInflater) // 传入绑定类的根视图作为布局 setContentView(binding.root) // 所有控件通过binding调用,对应id的控件直接生成对应属性,这里示例调用btnDatePicker binding.btnDatePicker } }
内容的提问来源于stack exchange,提问作者Zaesar
相关产品推荐
相关产品推荐

