2015-04-07 49 views
4

有没有一种方法可以在我的代码中使用build.gradle中的变量,这取决于flavor AND buildType?构建gradle变量,用于取决于风格的代码和构建类型

在此示例中: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或不包括交换机的另一种方式,或者如果else语句来做到这一点?

回答

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 {}块。

+0

对不起,我认为这工作的第一,但应用程序永远不会从调试的价值,它始终需要释放。无论我运行应用程序时选择哪种构建版本。 –

+0

你可以编辑你的文章以包含更完整版本的构建文件吗?另外,你正在使用哪个版本的gradle插件?我正在使用1.1.3 – gonga

+0

为什么'“String”声明? –