itsource

DSL 요소 'android.dataBinding.enabled'는 더 이상 사용되지 않으며 'android'로 대체되었습니다.buildFeatures.dataBinding'

mycopycode 2023. 8. 30. 21:42
반응형

DSL 요소 'android.dataBinding.enabled'는 더 이상 사용되지 않으며 'android'로 대체되었습니다.buildFeatures.dataBinding'

프로젝트를 빌드할 때 다음 경고를 받습니다.

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

사용 중Android Studio Canary 6

출발지Android Gradle Plugin 4.0.0-alpha05라는 새로운 블록이 있습니다.buildFeatures빌드 기능을 사용하도록 설정합니다.

따라서 새로운 AGP 플러그인으로 데이터 바인딩을 활성화하려면 모듈(예: app) 수준 Gradle 파일에서 다음과 같이 하십시오.

build.gradle(그루비 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

build.gradle(앱 수준)에 저장합니다.4.0.0 이상의 안드로이드 스튜디오 버전에서 작동합니다.

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

이 경고는 다음과 같은 이유로 발생합니다.


    dataBinding {
        enabled=true
    }

    viewBinding {
        enabled=true
    }

이 코드 스타일은 더 이상 사용되지 않으며 지금도 이 코드를 사용하려면 Androidx 레거시 지원 종속성을 사용할 수 있습니다.

평판이 좋은 체격으로

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

그렇지 않으면 새 코드 스타일을 사용하여 데이터 바인딩 및 보기 바인딩을 활성화할 수 있습니다.

이것처럼.

android {

  buildFeatures {

         dataBinding = true

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

이 코드를 Gradle Scripts >> build.gradle(모듈: appName.app)에 넣습니다.

조립 후에유형(데이터 바인딩 코드 포함)

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

이상입니다 :)

새 기능을 찾고 있는 경우viewBinding이것을 시험해 보다Groovy

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

그리고 이것은Kotlin

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

그러나 기본 Android 데이터 바인딩을 사용하려면

android {
    ...
    buildFeatures {
        dataBinding true
    }
}

또한, 사용에 주의하십시오.

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

1- 빌드 아래에 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'
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
    }

위의 노트들을 보세요. 그래서 그것은 매우 명확할 것입니다.

다음 작업이 가능성:

안드로이드 {compileSdkVersion 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"
}

Gradle 모듈에 buildFeatures를 추가해야 합니다.

android {
    buildFeatures{
        dataBinding true
    }
}

예:

plugins {
    id 'com.android.application'
}

android {
    compileSdkVersion 30

    defaultConfig {
        applicationId "com.demo"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    buildFeatures{
        dataBinding true
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.3.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation 'org.jetbrains:annotations:15.0'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

언급URL : https://stackoverflow.com/questions/59390492/dsl-element-android-databinding-enabled-is-obsolete-and-has-been-replaced-with

반응형