构建要在代码中使用的gradle变量,具体取决于flavor和build类型

时间:2015-04-07 09:54:52

标签: java android android-studio android-gradle

有没有办法在我的代码中使用build.gradle中的变量,这取决于flavor AND buildType?

在此示例中:Is it possible to declare a variable in Gradle usable in Java?新资源值仅取决于其是否为调试或发布版本类型。

我想拥有的是每个可能的buildVariant的一个变量。

如下所示:

flavor1Debug   => resValue "string", "app_name", "App 1 Debug"
flavor1Release => resValue "string", "app_name", "App 1"
flavor2Debug   => resValue "string", "app_name", "App 2 Debug"
flavor2Release => resValue "string", "app_name", "App 2"

有没有一种很好的方法可以通过build.gradle或其他不包含开关或if语句的方式来实现这一点?

1 个答案:

答案 0 :(得分:6)

在你的应用的build.gradle中,你可以实现的一个方法是:

buildTypes {
    debug {
        productFlavors.flavor1.buildConfigField "String", "app_name", "\"App 1 Debug\""
        productFlavors.flavor2.buildConfigField "String", "app_name", "\"App 2 Debug\""
    }
    release {
        productFlavors.flavor1.buildConfigField "String", "app_name", "\"App 1\""
        productFlavors.flavor2.buildConfigField "String", "app_name", "\"App 2\""
    }
}

请注意,您需要在buildTypes之前定义productFlavors {}块。