heihei blog

Write once, recall anytime. 自分のために書く 📝

BuildConfigを生成しないようにする方法

TL;DR

android {
  ...
  libraryVariants.all {
    it.generateBuildConfig.enabled = false
  }
}

自動生成されるBuildConfig.javaについて

Androidアプリ開発等において、プロジェクト構成をマルチモジュールの形にすることで得られるメリットは大きくなってきています。 通常、AndroidプロジェクトををビルドするとBuildConfig.javaというファイルが自動で生成されます。(R.javaというリソースIDの一覧を保持するファイルも生成されます。)

BuildConfig.javaには、通常下記のような記述がされています。

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "com.shaunkawano.blog.sample";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";

BuildConfigを生成しないようにする方法

BuildConfigファイルには設定によって独自の定数を追加することができます。が、そのような定数を保持するBuildConfigファイルはプロジェクト内で一つ存在すれば良さそうです。また、マルチモジュールを構成するようなライブラリモジュール内のBuildConfigファイルに動的な定数値が定義されていることも稀です。つまり大半の場合はライブラリモジュールのBuildConfigファイルは不要であることが多いです。

ライブラリモジュールのBuildConfigファイルを生成しないようにするには、ライブラリモジュールのbuild.gradleに下記の設定を記述します:

android {
  ...

  libraryVariants.all {
    it.generateBuildConfig.enabled = false
  }
}

参考

メモ程度ですが、以上です。