在构建项目时获取以下警告

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

我正在使用Android Studio金丝雀6


当前回答

出现此警告是因为


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

其他回答

从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

出现此警告是因为


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

以下工作:

android { 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"
}
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
    }

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

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'