在构建项目时获取以下警告
DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'.
我正在使用Android Studio金丝雀6
在构建项目时获取以下警告
DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'.
我正在使用Android Studio金丝雀6
当前回答
如果您正在寻找新的特性viewBinding,可以试试Groovy的这个特性
android {
...
buildFeatures {
viewBinding true
}
}
这是给Kotlin的
android {
...
buildFeatures {
viewBinding true
}
}
但是,要使用默认的android数据绑定
android {
...
buildFeatures {
dataBinding true
}
}
另外,要注意使用
kapt "com.android.databinding:compiler:4.0.0"
其他回答
从Android Gradle Plugin 4.0.0-alpha05开始,有一个名为buildFeatures的新块来启用构建功能。
因此,为了使数据绑定与新的AGP插件,你必须在模块(例如:app)级别的gradle文件
构建。gradle (Groovy DSL)
// shorter version
// android.buildFeatures.dataBinding true
// longer version
android {
buildFeatures {
dataBinding true
// for view binding:
// viewBinding true
}
}
build.gradle.kts ( Kotlin DSL )
// shorter version
// android.buildFeatures.dataBinding = true
// longer version
android {
buildFeatures {
dataBinding = true
// for view binding:
// viewBinding = true
}
}
参考:https://developer.android.com/studio/releases/gradle-plugin # buildFeatures
1-在build下面添加dataBinding功能:
android {
...
buildFeatures {
dataBinding true
}
...
}
2-将匕首版本改为2.31.2
annotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
implementation "com.google.dagger:dagger:$daggerVersion"
3- butterKnife版本也更改为10.2.3
implementation 'com.jakewharton:butterknife:10.2.3'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
你必须在gradle模块中添加buildFeatures
android {
buildFeatures{
dataBinding true
}
}
例子:
plugins {
id 'com.android.application'
}
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.demo"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures{
dataBinding true
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'org.jetbrains:annotations:15.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
如果您正在寻找新的特性viewBinding,可以试试Groovy的这个特性
android {
...
buildFeatures {
viewBinding true
}
}
这是给Kotlin的
android {
...
buildFeatures {
viewBinding true
}
}
但是,要使用默认的android数据绑定
android {
...
buildFeatures {
dataBinding true
}
}
另外,要注意使用
kapt "com.android.databinding:compiler:4.0.0"
buildFeatures {
//just for dataBinding ,It has nothing to do with viewBinding
dataBinding = true
//just for viewBinding ,It has nothing to do with dataBinding
viewBinding = true
}
看看上面的注释,应该很清楚了