Android Studio 3.1升级后Kotlin中Databinding V2无法找到BR类求助
解决Kotlin项目中Data Binding V2的"Unresolved reference: BR"问题
我之前也碰到过一模一样的问题!升级Android Studio 3.1后强制启用Data Binding V2,Java项目能正常构建,但Kotlin项目就会报Unresolved reference: BR的错误,下面是几个亲测有效的解决方法:
方法一:确保Kotlin与Data Binding的配置匹配
先检查项目根目录的build.gradle(Project级),保证Kotlin插件和Gradle插件版本兼容,同时引入必要依赖:
buildscript { ext.kotlin_version = '1.3.72' // 选择和AS 3.1兼容的Kotlin版本,比如1.3.x系列 repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.4' // AS 3.1对应的最新Gradle插件版本 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
再检查Module级的build.gradle,确保同时开启Data Binding和正确配置Kotlin选项:
android { ... dataBinding { enabled = true } kotlinOptions { jvmTarget = "1.8" } } dependencies { ... implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" }
方法二:清理缓存并重新构建
很多时候是缓存导致BR类没正常生成,按以下步骤操作:
- 点击AS工具栏的
Build->Clean Project - 接着点击
Build->Rebuild Project - 如果还是不行,手动删除项目根目录的
.gradle、build文件夹,以及Module下的build文件夹,再点击File->Sync Project with Gradle Files重新同步
方法三:检查布局与ViewModel的正确性
你的布局已经包含<layout>和<data>变量,但还要确认:
com.example.shao.myapplication.ViewModel类确实存在,且是public权限- 布局文件没有XML语法错误(比如标签未闭合、属性拼写错误)
- 如果ViewModel里用了
@Bindable注解,要确认导入的是正确的包(旧版是android.databinding.Bindable,新版是androidx.databinding.Bindable,根据你的依赖版本选择)
方法四:显式配置Data Binding V2(可选)
如果以上方法都没效果,可以在gradle.properties里显式开启V2,确保配置生效:
android.databinding.enableV2=true
内容的提问来源于stack exchange,提问作者Gene




