You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:06:01