在构建项目时收到以下警告
DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'.
我正在使用Android Studio Canary 6
答案 0 :(得分:22)
发生此警告的原因是
dataBinding {
enabled=true
}
viewBinding {
enabled=true
}
不推荐使用此代码样式,它将从gradle版本5中删除 现在,如果您仍然想使用它,则可以使用androidx旧版支持依赖项
在app lavel build.gradle中
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
否则,您可以使用新的代码样式来启用数据绑定和视图绑定
像这样
android {
buildFeatures {
dataBinding = true
// for view binding:
// viewBinding = true
}
}
答案 1 :(得分:19)
将其放在build.gradle(applevel)中。它将与android studio 4.0.0版一起使用。
android {
buildFeatures{
dataBinding = true
viewBinding = true
}
}
答案 2 :(得分:5)
将此代码放在buildTypes下的build.gradle(项目级别)中:
buildTypes { ... }
//Here is the code...
buildFeatures {
dataBinding = true
}
仅此而已:)
答案 3 :(得分:4)
从Android Gradle Plugin 4.0.0-alpha05
开始,有一个名为buildFeatures
的新块可以启用构建功能。
因此,为了启用与新AGP插件的数据绑定,您必须遵循以下步骤
android {
buildFeatures{
dataBinding = true
}
}
参考:https://developer.android.com/studio/preview/features#agp-4-0-0
答案 4 :(得分:4)
1- 在 buildFeatures 下添加 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'
答案 5 :(得分:4)
如果您正在寻找新功能 viewBinding
,试试这个:
android {
...
buildFeatures {
viewBinding true
}
}
但是,使用默认的android数据绑定
android {
...
buildFeatures {
dataBinding true
}
}
另外,请注意使用
kapt "com.android.databinding:compiler:4.0.0"
答案 6 :(得分:3)
以下工作:
安卓{ 编译SDK版本30 构建工具版本“30.0.3”
defaultConfig {
applicationId "com.poet.navviewmodeljave"
minSdkVersion 19
targetSdkVersion 30
versionCode 1
versionName "1.0"
//dataBinding.enabled true
buildFeatures.dataBinding
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
答案 7 :(得分:3)
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
}
看上面的注释,应该很清楚了