445

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

宣言の例は次のようなものです...:

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

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

4

11 に答える 11

844

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

于 2013-06-19T21:01:43.377 に答える