Android使用Data Binding Adapter遇报错,求教kapt相关问题及解决方法
问题解决:Data Binding Adapter报错需启用kotlin-kapt插件
错误原因
你遇到的错误提示明确要求在模块的build.gradle中应用kotlin-kapt插件,这是因为Data Binding的注解(比如@BindingAdapter)需要注解处理器来生成对应的绑定代码,而在Kotlin项目中,kapt是官方指定的注解处理工具。
什么是kapt?
kapt是Kotlin Annotation Processing Tool的缩写,是Kotlin官方为处理Java/Kotlin注解设计的工具。它兼容Java的注解处理器,负责在编译阶段扫描代码中的注解,自动生成对应的辅助代码——Data Binding、Room、Dagger等主流库都依赖它完成注解驱动的代码生成工作。
解决步骤
1. 启用kotlin-kapt插件
打开模块级的build.gradle(注意是模块目录下的,不是项目根目录的),在插件配置块中添加kotlin-kapt:
plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' id 'kotlin-kapt' // 新增这一行 }
2. 确认Data Binding已开启
同样在模块的build.gradle的android块中,确保Data Binding配置已启用:
android { ... buildFeatures { dataBinding true // 必须开启,否则BindingAdapter无法生效 } }
3. 同步项目
点击Android Studio右上角的Sync Now按钮,等待项目同步完成后,错误即可消除。
代码说明
你的@BindingAdapter代码本身没有问题,它定义了一个自定义属性app:backgroundColor,可以接收MyColors枚举类型来设置View背景色。同步完成后,就能在布局XML中正常使用该属性,示例如下:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" app:backgroundColor="@{viewModel.currentColor}" />
内容的提问来源于stack exchange,提问作者Zeyad Galal
相关产品推荐
相关产品推荐

