BuildConfig.DEBUG
アプリケーションを実行すると false が返されるのはなぜですか?
次のようにログを制御するために使用します。
public static void d(String LOG_TAG, String msg){
if(BuildConfig.DEBUG){
Log.d(LOG_TAG,msg);
}
}
BuildConfig.DEBUG
アプリケーションを実行すると false が返されるのはなぜですか?
次のようにログを制御するために使用します。
public static void d(String LOG_TAG, String msg){
if(BuildConfig.DEBUG){
Log.d(LOG_TAG,msg);
}
}
あなたの Android Studioビルド バリアントでは、デバッグバリアントを使用していますか?
flavors
これは、 fordebug
またはのいずれかを使用するときに適用されますrelease
。
デバッグ モードでBuildConfig.BUILD
は true、リリース モードでは false です。
クラスの上部にあるビルド構成の自動インポート ステートメントがプロジェクトに属していることを確認します。
com.your.package.name.BuildConfig
BuildConfig
インポートはリリースされたライブラリに属している可能性がありますがDEBUG
、false です。
そのコードがライブラリにある場合、 gradle の 3 年前のバグのおかげで、常に false になります。
インポートしないでくださいBuildConfig
。これは自動生成されたクラスであり、Android Studio の指示にかかわらず、インポートは不要です。
Android Studio がインポートを求めるプロンプトを表示する場合BuildConfig
、最初の Gradle ビルドを実行して、最終的にcom.yourdomain.yourapp.BuildConfig
. これは、Android Studio と Gradle をアップグレードしたとき、または を実行したときに発生する可能性がありますBuild -> Clean project。
別のパッケージの をインポートする場合BuildConfig
、もちろん、リリース フレーバーのみをリリースし、デバッグ フレーバーはリリースしないため、常に false になります。
. build.gradle
_ buildType
_ BuildConfig
_
したがって、本質的に:
BuildConfig
(そのため、赤のままにしておきます)buildType
でくださいbuild.gradle
(これは、クラスを自動生成するデフォルトのビルド動作と競合する可能性があります)エラーは解消されるはずです。
これは、Android Studio と Gradle をアップグレードするとき、およびプロジェクトをクリーンアップするときに発生します。
インポート プロンプトを無視する
別のパッケージをインポートしないでくださいBuildConfig
。デバッグ バージョンをリリースしていないため、常に false になります。
インポートすると、発生しているエラーが発生します
私のプロジェクトでは、提案されたライブラリの 1 つをインポートすると、エラーが表示されます。これは、誰もデバッグ ビルドをリリースしないためです。もちろん、他の誰かを指している場合は常に false になります。
インテリセンスを無視してプロジェクトを実行する
ビルドを実行するだけです。クラスが自動生成され、警告が消えます。
間違ったパッケージをインポートしている可能性があります。確認してください。(一部の Android ライブラリには BuildConfig クラスもあります)