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 } }
参考
- https://github.com/JakeWharton/RxBinding/commit/9cb525dc8cad098d47924f960737afb7af933b9a
- https://issuetracker.google.com/issues/72050365
メモ程度ですが、以上です。