build gradle 代码中使用的变量取决于风格和构建类型
build gradle variables to be used in code depending on flavor AND build type
有没有办法在我的代码中使用来自 build.gradle 的变量,这取决于 flavor 和 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 else 语句的其他方式来执行此操作的好方法?
在 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{} 块。
有没有办法在我的代码中使用来自 build.gradle 的变量,这取决于 flavor 和 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 else 语句的其他方式来执行此操作的好方法?
在 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{} 块。