Получает следующее предупреждение при сборке проекта

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

Я использую Android Studio Canary 6

user158

Ответы (8)

Начиная с Android Gradle Plugin 4.0.0-alpha05 есть новый блок с именем buildFeatures для включения функций сборки.

Итак, чтобы включить привязку данных с новым плагином AGP, вам нужно сделать следующее в файле градиента уровня модуля (например: приложение)

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 {

        //just for dataBinding ,It has nothing to do with viewBinding 
        dataBinding = true

        //just for viewBinding ,It has nothing to do with dataBinding
        viewBinding = true
    }

Посмотрите на примечания выше ,, так что они должны быть очень четкими

Поместите его в build.gradle (уровень приложения). Он будет работать с версией студии Android выше или равной 4.0.0.

android {
    buildFeatures{ 
        dataBinding true // for data binding 
        viewBinding true // for view binding
    }
}

Работы:

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

Если вы ищете новую функцию viewBinding, попробуйте это для Groovy

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

и это для Котлин

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

Но, чтобы использовать привязку данных android по умолчанию

android {
    ...
    buildFeatures {
        dataBinding true
    }
}

также, не забывайте использовать

kapt "com.android.databinding:compiler:4.0.0"

1 - добавить dataBinding в buildFeatures вроде этого:

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'

Это предупреждение возникает из-за того, что


    dataBinding {
        enabled=true
    }

    viewBinding {
        enabled=true
    }

Этот стиль кода устарел и будет удален из версии Gradle 5. теперь, если вы все еще хотите использовать это, вы можете использовать устаревшие зависимости поддержки androidx

в приложении lavel build.gradle

implementation 'androidx.legacy:legacy-support-v4:1.0.0'

в противном случае вы можете использовать новый стиль кода, чтобы включить привязку данных и привязку просмотра

вот так

android {

  buildFeatures {

         dataBinding = true

         // for view binding:
         // viewBinding = true
    }
}

Поместите этот код в Gradle Scripts >> build.gradle (Module: appName.app)

после buildTypes, включить код назначения данных

buildTypes {
       release {
           .......
          ........
       }
   }
 //here is the code...
   buildFeatures {
       dataBinding = true
   } 

Вот и все :)

2022 WebDevInsider