BuildConfig

When an Android module contains custom BuildConfig fields, the following steps are necessary to ensure a correct build.

Step 1: Enable the buildConfig build feature

In a build script:

android {
  buildFeatures {
    buildConfig = true
  }
}

In custom build-logic for an app module:

extensions.configure<com.android.build.api.dsl.ApplicationExtension> {
  buildFeatures {
    buildConfig = true
  }
}

In custom build-logic for a library module:

extensions.configure<com.android.build.api.dsl.LibraryExtension> {
  buildFeatures {
    buildConfig = true
  }
}

In custom build-logic using CommonExtension:

extensions.configure<com.android.build.api.dsl.CommonExtension> {
  buildFeatures {
    buildConfig = true
  }
}

Step 2: Migrate to the new API

Use the addCustomBuildConfigFields recipe from the gradle-recipes repository.

IMPORTANT: For BuildConfigFields with a type of String, the value field must include quotation marks as part of the String. For example:

BuildConfigField(
  type = "String",
  value = "\"Some value\"",
  comment = "Optional comment",
)

It is an error if the value field doesn't include quotation marks as part of the String. For example, value = "Some value" is an error. This is because the value is written out literally.