본문 바로가기
Android/Error Report

[Gradle] AGP 8.0에서 BuildConfig 사용 시 에러

by 굿햄 2023. 3. 7.

멀티모듈에서 BuildConfig를 buildType별로 다르게 하기 위해 해당 모듈 build.gradle 파일을 아래와 같이 작성했었다.

android {
    namespace 'com.app.xxxx'
    compileSdk 33

    defaultConfig {
        minSdk 21
        targetSdk 33

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }

    buildTypes {
        release {
            buildConfigField "Boolean", "DEBUG_MODE", "false"
        }
        debug {
            buildConfigField "Boolean", "DEBUG_MODE", "true"
        }
    }
    ...

 

 

그러나 곧 아래와 같은 경고 출력되었다.

"Build Type 'release' contains custom BuildConfig fields, but the feature is disabled."

 

알아보니 AGP(Android gradle plugin) 8.0부터 buildconfig는 기본적으로 비활성화 되며 AGP 9.0부터는 사라진다고 한다.

사라지는 기능은 아래와 같다.

  • android.defaults.buildfeatures.aidl
  • android.defaults.buildfeatures.buildconfig
  • android.defaults.buildfeatures.renderscript

 

임시 방편으로 Flag 값을 true로 변경하면 된다하여 아래와 같이 수정했다.

android {
    namespace 'com.app.xxxx'
    compileSdk 33

    defaultConfig {
        minSdk 21
        targetSdk 33

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }

    buildFeatures {
        buildConfig = true
    }
    
    buildTypes {
        release {
            buildConfigField "Boolean", "DEBUG_MODE", "false"
        }
        debug {
            buildConfigField "Boolean", "DEBUG_MODE", "true"
        }
    }
    ...

 

 

그 동안 빌드 타입별로 일부 기능을 다르게 구현하기 위해 사용해왔는데, 앞으로는 다른 방법을 찾아봐야겠다.

댓글