Javaで使用できるGradleの変数を宣言することは可能ですか? 質問する

Javaで使用できるGradleの変数を宣言することは可能ですか? 質問する

Java で使用できる Gradle の変数を宣言することは可能ですか? 基本的には、build.gradle でいくつかの変数を宣言し、ビルド時に (当然ですが) それを取得したく思います。C/C++ のプリプロセッサ マクロのように...

宣言の例は次のようになります...:

android {
    debug {
        A_VAR_RETRIEVABLE_IN_JAVA = 42
    }
    release {
        A_VAR_RETRIEVABLE_IN_JAVA = 42+52
    }
}

そのようなことをする方法はありますか?

ベストアンサー1

Gradle から Java で使用するために値を渡す方法は 2 つあります。

Java定数を生成する

android {
    buildTypes {
        debug {
            buildConfigField "int", "FOO", "42"
            buildConfigField "String", "FOO_STRING", "\"foo\""
            buildConfigField "boolean", "LOG", "true"
        }

        release {
            buildConfigField "int", "FOO", "52"
            buildConfigField "String", "FOO_STRING", "\"bar\""
            buildConfigField "boolean", "LOG", "false"
        }
    }
}

以下の方法でアクセスできますBuildConfig.FOO

Androidリソースを生成する

android {
    buildTypes {
        debug{
            resValue "string", "app_name", "My App Name Debug"
        }
        release {
            resValue "string", "app_name", "My App Name"
        }
    }
}

通常の方法でアクセスする@string/app_nameか、R.string.app_name

おすすめ記事