TIPs of Android Studio – #003 BuildConfig.DEBUGを使いたい

前提

OS:Windows 11 Pro
Android Studio:Flamingo 2022.2.1 Patch1
言語:Kotlin

BuildConfig.DEBUGとは

そもそも何か

Android Studioでのデバッグや、デバッグ版apk(app-debug.apk)のビルド時はtrueになり、リリース版apk(app-release.apk)のビルド時はfalseになる値で、コード内でデバッグビルド、リリースビルドの判定を行う場合に利用します(してました)。

使えない?使えなくなった?

開発中のDEBUG版と、リリースする際のRELEASE版で動作を切り替えようと下記の様なコードを書くと…

BuildConfigクラスがない?

あれ、BuildConfigクラスはGradleビルド時に自動で作られるはずだったのでは…?

知らない間に無効になったのかな…?

確かにコードの切り分けはバグになりやすいとは思うけど…。

でも、やっぱり使いたい。

BuildConfig.DEBUGを利用可能にする手順

下記手順で、以前と同じ様に(まったく同じではないかも知れませんが)、「BuildConfig.DEBUG」を利用できるようになります。

1.build.gradle (Module: app)の修正

「build.gradle」 (Module: app)ファイルのandroidブロックに下記のbuildTypesブロックを追加。

修正後、右上の「Sync Now」をクリックして、Gradleビルドを実行。

2.gradle.propertiesの修正

「gradle.properties」ファイルの最後に「android.defaults.buildfeatures.buildconfig=true」を追加します。

修正後、右上の「Sync Now」をクリックして、Gradleビルドを実行。

3.ソースコードの確認

ソースコードを確認してエラーがなくなっている事を確認する。

【注意】「Gradle.build」「gradle.properties」の修正順を逆にすると何故かうまく行きません…(エラーが取れません)。うまく行かない場合は、「gradle.properties」をもう一度修正して「Sync Now」を実行します。

動作確認

ビルドでエラーが出なくても、期待通り動かなければ意味がありませんので、動作を確認します。

DEBUG版

Android Studioからデバッグ実行します。

TextViewの表示が「DEBUG」となり、期待通り動作しました。

RELASE版

リリース版の場合は、署名付きかつリリース版のAPK(app-release.apk)を作成し、ADBでインストールします。

リリース版をインストールする前に、デバッグ版をアンインストールしておく必要があります。

> adb install app-release.apk

インストールしたアプリを実行すると…

TextViewの表示が「RELEASE」となり、期待通り動作しました。

おまけ

BuildConfigクラスが有効になれば、BuildConfig.BUILD_TYPE(文字列)をチェックしてもDEBUG、RELEASEは判定できます。

ビルドBuildConfig.BUILD_TYPEの値
DEBUG“debug”
RELEASE“release”

ただ、過去コードを流用しようとした場合は、BuildConfig.DEBUGを使いたいところです。