Android Studio 2022.3.1启用DataBinding报'Unresolved reference: enabled'错误求助
问题解决:Unresolved reference: enabled(DataBinding启用报错)
问题原因
你使用的是Kotlin DSL格式的Gradle配置文件(从compileSdk = 33这类赋值语法可判断),但仍沿用了Groovy DSL风格的DataBinding启用方式,导致语法不兼容报错。
解决方案
将原来的dataBinding代码块替换为buildFeatures下的配置:
android { // ... 保留其他原有配置 // 替换原dataBinding块,这是Kotlin DSL的正确写法 buildFeatures { dataBinding = true } }
修改后的完整Gradle配置示例
plugins { id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-android") } android { namespace = "com.example.apitest" compileSdk = 33 defaultConfig { applicationId = "com.example.apitest" minSdk = 24 targetSdk = 33 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } // 正确启用DataBinding的配置 buildFeatures { dataBinding = true } } dependencies { implementation("androidx.core:core-ktx:1.10.1") implementation("com.squareup.okhttp3:okhttp:4.9.1") implementation("androidx.appcompat:appcompat:1.6.1") implementation("com.google.android.material:material:1.9.0") implementation("androidx.constraintlayout:constraintlayout:2.1.4") testImplementation("junit:junit:4.13.2") androidTestImplementation("androidx.test.ext:junit:1.1.5") androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") }
补充说明
从Android Gradle Plugin(AGP)7.0版本开始,ViewBinding、DataBinding这类UI绑定特性的启用方式统一调整到buildFeatures块下配置,不再使用单独的dataBinding/viewBinding代码块,这是Kotlin DSL配置的标准写法。
内容的提问来源于stack exchange,提问作者thai
相关产品推荐
相关产品推荐

