DSL元素“ android.dataBinding.enabled”已过时,并已替换为“ android.buildFeatures.dataBinding”

时间:2019-12-18 10:54:40

标签: android android-databinding

在构建项目时收到以下警告

DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'.

我正在使用Android Studio Canary 6

8 个答案:

答案 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
    }

看上面的注释,应该很清楚了