【发布时间】:2015-10-09 19:43:09
【问题描述】:
我为我的构建定义了一堆产品风格。但是在某些情况下,我想构建没有味道的东西。
但是,当我尝试构建没有味道的版本时,即
gradlew assembleRelease
它会遍历并构建所有变体,这需要很长时间。我想开始发布版本并忽略所有口味。这可能吗?
我确信我可以添加一个名为“默认”的空风格,并构建它。看来我不应该这样做。
编辑:
defaultConfig {
resValue "string", "hello", "Hello default"
}
productFlavors {
foo {
resValue "string", "hello", "Hello Foo"
}
bar {
resValue "string", "hello", "Hello Bar"
}
}
目前的答案似乎是提供您自己的“默认”风味
productFlavors {
defaults {
// yup its empty cause I just want to build with the defaults
// that are already defined.
}
foo {
resValue "string", "hello", "Hello Foo"
}
bar {
resValue "string", "hello", "Hello Bar"
}
}
【问题讨论】:
-
如果您添加了 productFlavors,您现在将拥有变体。所以你的“默认”将是
assemble[variant]Debug和assemble[variant]Release。 -
我一直在寻找一段时间没有答案,因此这篇文章。恕我直言,这很糟糕。仅仅因为我添加了提供一些不同默认值或配置的风味,并不意味着没有它们就无法构建。有一个 defaultConfig 块,我可以在其中定义要使用的默认值,而无需使用它,这似乎是合理的。那是空的味道....
-
您似乎不了解风味,您可以创建仅使用“默认”的“默认”风味。风味的重点是针对称为变体的不同安装。请参阅:stackoverflow.com/questions/17656826/… 和 stackoverflow.com/questions/21307444/…
-
我怎么看不懂?您可以覆盖各种类型的东西。例如,您可以使用 resValue 来提供资源值。因此,在我的 2 种风格中,我可以为资源定义 2 个不同的值。但我也可以将 resValue 放在我的 defaultConfig 块中。这意味着如果我想要一个带有 resValue 覆盖的构建。我已经更新了问题以显示这一点。但是没关系,如果您定义了风味,显然您无法构建非风味版本。还是很笨,为什么在这种情况下有默认值?
-
问题是当Java源文件在不同风格之间存在差异时,该文件仅存在于不同风格中,因此纯版本将不完整。尽管如此,它应该能够检测到风味只包含资源并在这种情况下构建默认版本。
标签: android gradle android-productflavors