DSL 元素 'android.dataBinding.enabled' 已过时,已替换为 'android.buildFeatures.dataBinding'
Posted
技术标签:
【中文标题】DSL 元素 \'android.dataBinding.enabled\' 已过时,已替换为 \'android.buildFeatures.dataBinding\'【英文标题】:DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'DSL 元素 'android.dataBinding.enabled' 已过时,已替换为 'android.buildFeatures.dataBinding' 【发布时间】:2020-04-10 21:58:37 【问题描述】:在构建项目时收到以下警告
DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'.
我正在使用Android Studio Canary 6
【问题讨论】:
【参考方案1】:从Android Gradle Plugin 4.0.0-alpha05
开始,有一个名为buildFeatures
的新块用于启用构建功能。
因此,为了使用新的 AGP 插件启用数据绑定,您需要在模块(例如:应用程序)级别的 gradle 文件中执行以下操作
build.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
【讨论】:
对我有用的是 buildFeatures viewBinding = true 为了摆脱构建警告,您还需要删除旧的“dataBinding enabled = true ”块。【参考方案2】:放入build.gradle(app level)中,android studio版本大于等于4.0.0即可使用。
android
buildFeatures
dataBinding true // for data binding
viewBinding true // for view binding
【讨论】:
【参考方案3】:出现此警告是因为
dataBinding
enabled=true
viewBinding
enabled=true
此代码样式已弃用,将从 gradle 版本 5 中删除 现在,如果您仍想使用它,那么您可以使用 androidx 旧版支持依赖项
在应用层 build.gradle 中
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
否则您可以使用新的代码样式来启用数据绑定和视图绑定
喜欢这个
android
buildFeatures
dataBinding = true
// for view binding:
// viewBinding = true
【讨论】:
【参考方案4】:将此代码放入Gradle Scripts >> build.gradle(Module: appName.app)
在buildTypes之后,包含数据出价代码
buildTypes
release
.......
........
//here is the code...
buildFeatures
dataBinding = true
就是这样:)
【讨论】:
【参考方案5】:如果您正在寻找新功能viewBinding
,请尝试Groovy
android
...
buildFeatures
viewBinding true
这是Kotlin
android
...
buildFeatures
viewBinding true
但是,要使用默认的android数据绑定
android
...
buildFeatures
dataBinding true
还有,注意使用
kapt "com.android.databinding:compiler:4.0.0"
【讨论】:
【参考方案6】: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'
【讨论】:
【参考方案7】: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
看上面的注释,应该很清楚了
【讨论】:
【参考方案8】:以下作品:
机器人 compileSdkVersion 30 buildToolsVersion "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"
【讨论】:
以上是关于DSL 元素 'android.dataBinding.enabled' 已过时,已替换为 'android.buildFeatures.dataBinding'的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 capybara DSL 测试 Select2 元素?
[转] 在Jenkins Pipeline DSL中 遍历 groovy list