You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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
  • 如果还是不行,手动删除项目根目录的.gradlebuild文件夹,以及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

火山引擎 最新活动