29

BuildConfig.DEBUGアプリケーションを実行すると false が返されるのはなぜですか?

次のようにログを制御するために使用します。

public static void d(String LOG_TAG, String msg){
    if(BuildConfig.DEBUG){
        Log.d(LOG_TAG,msg);
    }
}
4

9 に答える 9

12

あなたの Android Studioビルド バリアントでは、デバッグバリアントを使用していますか?

flavorsこれは、 fordebugまたはのいずれかを使用するときに適用されますrelease

デバッグ モードでBuildConfig.BUILDは true、リリース モードでは false です。

于 2016-04-01T09:41:44.857 に答える
7

クラスの上部にあるビルド構成の自動インポート ステートメントがプロジェクトに属していることを確認します。

com.your.package.name.BuildConfig

BuildConfigインポートはリリースされたライブラリに属している可能性がありますがDEBUG、false です。

于 2020-04-07T11:18:10.897 に答える
6

そのコードがライブラリにある場合、 gradle の 3 年前のバグのおかげで、常に false になります。

于 2016-08-10T17:57:46.080 に答える
5

インポートしないでください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(これは、クラスを自動生成するデフォルトのビルド動作と競合する可能性があります)
  • lint エラーを無視する
  • ビルドを実行

エラーは解消されるはずです。

これは、Android Studio と Gradle をアップグレードするとき、およびプロジェクトをクリーンアップするときに発生します。

インポート プロンプトを無視する

別のパッケージをインポートしないでくださいBuildConfig。デバッグ バージョンをリリースしていないため、常に false になります。

ここに画像の説明を入力

インポートすると、発生しているエラーが発生します

私のプロジェクトでは、提案されたライブラリの 1 つをインポートすると、エラーが表示されます。これは、誰もデバッグ ビルドをリリースしないためです。もちろん、他の誰かを指している場合は常に false になります。

ここに画像の説明を入力

ここに画像の説明を入力

インテリセンスを無視してプロジェクトを実行する

ビルドを実行するだけです。クラスが自動生成され、警告が消えます。

ここに画像の説明を入力

于 2020-05-18T22:36:49.730 に答える
3

間違ったパッケージをインポートしている可能性があります。確認してください。(一部の Android ライブラリには BuildConfig クラスもあります)

于 2018-05-22T22:06:22.440 に答える