我有一个产品有多种产品口味,如:
buildTypes {
debug {
}
release {
}
}
productFlavors {
flavor1 {
buildConfigField "String" "country" "se"
buildConfigField "String" "language" "sv-SE"
buildConfigField "String" "appName" "Flavor1"
}
flavor2 {
buildConfigField "String" "country" "se"
buildConfigField "String" "language" "sv-SE"
buildConfigField "String" "appName" "Flavor2"
}
flavor3 {
buildConfigField "String" "country" "se"
buildConfigField "String" "language" "sv-SE"
buildConfigField "String" "appName" "Flavor3"
}
flavor4 {
buildConfigField "String" "country" "se"
buildConfigField "String" "language" "sv-SE"
buildConfigField "String" "appName" "Flavor4"
}
flavor5 {
buildConfigField "String" "country" "se"
buildConfigField "String" "language" "no-NO"
buildConfigField "String" "appName" "Flavor5"
}
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢具有所有属性的公共部分,并且只覆盖那些不同的部分.这可能吗?
我还想将所有风格(也许是buildTypes)放在它自己的文件中,以使其更具可读性.因此,每当你必须改变一种味道时,你可以很容易地在它自己的文件中找到它,而不必滚动数千行,如果我将所有的味道和buildTypes与主构建文件中的所有其他部分一起使用.
Fif*_*eep 54
塞尔文是正确的,使用defaultConfig封闭 - 没有更简洁的方式!在以下示例中,flavor 1,2和5将默认国家/地区和语言设置为de.Flavors 3和4用他们自己的语言覆盖它.
defaultConfig {
buildConfigField "String", "country", "de"
buildConfigField "String", "language", "de"
}
buildTypes {
debug {
}
release {
}
}
productFlavors {
flavor1 {
buildConfigField "String", "appName", "Flavor1"
}
flavor2 {
buildConfigField "String", "appName", "Flavor2"
}
flavor3 {
buildConfigField "String", "country", "uk"
buildConfigField "String", "language", "en_GB"
buildConfigField "String", "appName", "Flavor3"
}
flavor4 {
buildConfigField "String", "country", "fr"
buildConfigField "String", "language", "fr"
buildConfigField "String", "appName", "Flavor4"
}
flavor5 {
buildConfigField "String", "appName", name.capitalize()
}
}
Run Code Online (Sandbox Code Playgroud)
注意
只是一个FYI,您可以使用该方法将name.capitalize()任何风味的名称flavor5转换为应用程序名称- 这将使String中的第一个字符大写.然而,这必须是味道,而不是Flavor5capitalize()defaultConfig
| 归档时间: |
|
| 查看次数: |
8631 次 |
| 最近记录: |