目次
前提
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を使いたいところです。