构建变量是一个非常强大的工具,可以通过指定较小的差异来创建代码的不同变量,我在项目中大量使用了它。但我想知道是否可以选择特定的变体作为其他变体的基础,而不是选择main
。
例如,假设我的应用有3个变体:A
(主),B
和C
。变体B
与变体A
有很多不同的资源文件,因此我将它们添加到B
变体文件夹中,并且在编译变体B
时一切正常。但是对于变体C
,基于变体B
的改动很小。现在,我想知道创建变体C
的最佳方法是什么。最简单的方法是将B
变体的所有已更改文件(与A
变体相比)复制到变体C
,并对变体C
对其进行小的更改。我个人不喜欢这种方法,因为我也需要将所有更改B
应用于变量C
,也容易出现错误和错误。
总有将变体C
连接到变体B
的过程,因此aar
试图创建C
变体的资源时,它使用变体B
作为基础而不是变体A
?我认为有可能在变量中添加另一个维度,但是我更愿意在不添加新维度的情况下做到这一点。
答案 0 :(得分:0)
例如,您可以根据其他情况配置下一个BuildType
debugWithAnalytics.initWith(buildTypes.debug)
但是您应该在功能上使用调味料和调味料尺寸-可以将不同的调味料合并到一个配置中,因为buildTypes表示构建配置中的差异。 BuildTypes
应包含有关构建过程的信息,例如signconfig,基本构建流程配置等。
flavorDimensions("devbeta", "mainmirror")
productFlavors {
// Beta API enviroment
beta {
dimension = "devbeta"
buildConfigField "String", "SOCKET_REMOTE_PATH", "\"/beta\""
}
// Dev API enviroment
dev {
dimension = "devbeta"
buildConfigField "String", "SOCKET_REMOTE_PATH", "\"/dev\""
}
// Prod API enviroment
prod {
dimension = "devbeta"
buildConfigField "String", "SOCKET_REMOTE_PATH", "\"/prod\""
}
mainhost {
dimension = "mainmirror"
buildConfigField "String", "CONFIG_REMOTE_HOSTNAME", "\"mainmirro1\""
}
mirrorhost {
dimension = "mainmirror"
buildConfigField "String", "CONFIG_REMOTE_HOSTNAME", "\"mainmirrow\""
}
}
在这种情况下,可能的构建变体将为...MainhostBeta
MirrorhostDev
等。