我与下面的代码具有相同的结构,我想在gradle文件中将前缀和后缀放在不带点的位置,并在末尾使用applicationId值。
我不想使用applicationIdSuffix,因为它会自动添加点,而且我无法在gradle上获得它的值,也无法获得完整的applicationId。
flavorDimensions "type", "version"
productFlavors.all {
ext.appIdPrefix = "com.example"
ext.appId = ""
ext.appIdSuffix = ""
}
productFlavors {
flavor1 {
dimension "type"
appId = ".flavor1"
}
full {
dimension "version"
appIdSuffix = "Full"
}
}
productFlavors.all {
applicationId appIdPrefix + appId + appIdSuffix
}现在,当我使用"flavor1full“运行我的应用程序时,applicationId只是"com.exmaple.flavor1”,没有获得appIdSuffix的值
我该怎么解决这个问题呢?
发布于 2019-02-21 05:25:36
尝试迭代applicationVariants,而不是更改每种口味的应用程序ID:
applicationVariants.all { variant ->
def flavors = variant.productFlavors
variant.mergedFlavor.applicationId = flavors[0].appId + flavors[1].appIdSuffix ;
}由于两种构建类型,这将遍历每种风格的组合两次。另请参阅Multi-Dimension Flavor ApplicationId
还要注意你的问题中的一个拼写错误:appIdSuffix "Full"应该是appIdSuffix="Full"
发布于 2019-02-20 21:31:03
假设您的最终目标是使用不同的应用程序ID构建不同的应用程序风格,您应该能够使用以下内容:
flavorDimensions "type"
productFlavors.all {
ext.appIdPrefix = "prefix"
ext.appId = "hello.world"
}
productFlavors {
partial {
dimension "type"
ext.appIdSuffix = "suffix1"
}
full {
dimension "type"
ext.appIdSuffix = "suffix2"
}
}
productFlavors.all {
applicationId appIdPrefix + "." + appId + "." + appIdSuffix
}根据所选择的构建变量,上面将生成以suffix1或suffix2结尾的应用程序ID。我不太明白为什么你需要另一个维度。
https://stackoverflow.com/questions/54786444
复制相似问题