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

use*_*158 186 android android-databinding

构建项目时收到以下警告

DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'.
Run Code Online (Sandbox Code Playgroud)

我在用 Android Studio Canary 6

use*_*158 360

Android Gradle Plugin 4.0.0-alpha05那里开始,有一个新的块被调用buildFeatures来启用构建功能。

因此,为了使用新的 AGP 插件启用数据绑定,您必须在模块(例如:app)级别的 gradle 文件中执行以下操作

build.gradle ( Groovy DSL )

// shorter version
// android.buildFeatures.dataBinding true


// longer version

android {

    buildFeatures {

         dataBinding true

         // for view binding:
         // viewBinding true
    }
}
Run Code Online (Sandbox Code Playgroud)

build.gradle.kts ( Kotlin DSL )

// shorter version
// android.buildFeatures.dataBinding = true


// longer version

android {

  buildFeatures {

         dataBinding = true

         // for view binding:
         // viewBinding = true
    }
}
Run Code Online (Sandbox Code Playgroud)

参考:https : //developer.android.com/studio/releases/gradle-plugin#buildFeatures

  • 对我有用的是 buildFeatures { viewBinding = true } (5认同)

Jan*_*esh 37

把它放在 build.gradle(applevel) 中。它适用于大于或等于 4.0.0 的 android studio 版本。

     android {
             buildFeatures{ 
                    dataBinding = true // for data binding 
                    viewBinding = true // for view binding
              }
     }
Run Code Online (Sandbox Code Playgroud)


Aru*_*tya 37

出现此警告是因为


    dataBinding {
        enabled=true
    }

    viewBinding {
        enabled=true
    }

Run Code Online (Sandbox Code Playgroud)

此代码样式已弃用,现在将从 gradle 版本 5 中删除,如果您仍想使用它,则可以使用 androidx legacy 支持依赖项

在应用程序 lavel build.gradle

implementation 'androidx.legacy:legacy-support-v4:1.0.0'
Run Code Online (Sandbox Code Playgroud)

否则你可以使用新的代码样式来启用数据绑定和视图绑定

像这样

android {

  buildFeatures {

         dataBinding = true

         // for view binding:
         // viewBinding = true
    }
}
Run Code Online (Sandbox Code Playgroud)


Day*_*iye 11

将此代码放入 Gradle Scripts >> build.gradle(Module: appName.app)

buildTypes 之后,包括数据投标代码

buildTypes {
       release {
           .......
          ........
       }
   }
 //here is the code...
   buildFeatures {
       dataBinding = true
   } 
Run Code Online (Sandbox Code Playgroud)

就这样 :)


Amj*_*reh 6

如果您正在寻找新功能viewBinding,请尝试一下Groovy

android {
    ...
    buildFeatures {
        viewBinding true
    }
}
Run Code Online (Sandbox Code Playgroud)

这对于Kotlin

android {
    ...
    buildFeatures {
        viewBinding true
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,要使用默认的 android 数据绑定

android {
    ...
    buildFeatures {
        dataBinding true
    }
}
Run Code Online (Sandbox Code Playgroud)

另外,请注意使用

kapt "com.android.databinding:compiler:4.0.0"
Run Code Online (Sandbox Code Playgroud)