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

使用BindingAdapter绑定View时报错找不到对应参数类型setter如何解决

解决方案
    1. 修正BindingAdapter的定义规则
      Kotlin环境下的自定义BindingAdapter只有两种可被编译器识别的写法:要么写为不隶属于任何类的顶层函数,要么放在object单例类中并添加@JvmStatic注解,否则DataBinding无法扫描到适配器方法。
      参考修正代码:
    object CustomBindingAdapters {
        @JvmStatic
        @BindingAdapter("borderLine")
        fun View.borderLine(item: AccessListItem?){
            item?.let {
                // 你的业务逻辑
            }
        }
    }
    
    1. 修正Gradle配置错误
      你当前将apply plugin: 'kotlin-kapt'错误写在了dependencies依赖块内部,必须将其移动到文件头部的plugins块中,同时补充DataBinding需要的kapt配置:
      首先修改plugins块:
    plugins {
        id 'com.android.application'
        id 'kotlin-android'
        id 'kotlin-kapt' // 移到此处
    }
    

    其次删除dependencies块末尾的apply plugin: 'kotlin-kapt'冗余代码,在依赖块中添加DataBinding编译器依赖(AGP7.0+版本可省略该依赖):

    dependencies {
        kapt "com.android.databinding:compiler:4.1.0" // 版本与你的Android Gradle Plugin版本匹配即可
        // 其余原有依赖保持不变
    }
    
    1. 清理重建项目
      所有配置修改完成后,依次执行Android Studio菜单栏的 Build -> Clean Project、Build -> Rebuild Project,触发DataBinding代码重新生成即可。
    1. 校验类型一致性
      确认BindingAdapter中导入的AccessListItem全类名,与XML中声明的type="com.example.api.model.response.AccessListItem"完全一致,避免包名导入错误导致的类型不匹配问题。

内容的提问来源于stack exchange,提问作者misterios

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:24:03