gpt4 book ai didi

android - 如何使用 flavorDimensions 为每种 flavor 组合设置不同的 applicationId?

转载 作者:IT老高 更新时间:2023-10-28 22:26:15 29 4
gpt4 key购买 nike

我有一个旧的 android 应用程序,我正在尝试迁移到 android gradle 构建系统。该应用程序当前构建在多项目设置中,并作为四个不同的应用程序发布(包括两个不同的数据集和两个数据集的免费/付费版本)。通过使用 flavorDimensions(以前称为 flavorGroups),我设法摆脱了多项目设置,但我不知道如何为每种 flavor 组合设置不同的 applicationId。

由于应用程序版本已经发布,我需要保持与当前相同的应用程序 ID。由于我最初的包命名是如何完成的,我不能简单地使用带有“packageNameSuffix”的flavor-buildtype组合(如果它是一个未发布的应用程序,这将是一个很好的选择)。

https://stackoverflow.com/a/20956353/4177090正在回答如何使用不同的源文件夹进行 flavor 组合,而不是如何(如果可能的话)为构建文件中的每个组合设置特定配置。

Gradle 构建文件 fragment :

flavorDimensions "price", "dataset"

productFlavors {
free { flavorDimension "price" }
paid { flavorDimension "price" }
dataset1 { flavorDimension "dataset" }
dataset2 { flavorDimension "dataset" }
}

我想在我的 gradle 构建文件中包含以下内容(注意我的命名是多么不合逻辑,这就是我不能使用 packageNameSuffix 的原因):

freeDataset1 { applicationId "com.beansys.freeappdataset1" }
freeDataset2 { applicationId "com.beansys.freedataset2" }
paidDataset1 { applicationId "com.beansys.dataset1paid" }
paidDataset2 { applicationId "com.beansys.mypaiddataset2" }

最佳答案

Fredrik 提出的解决方案在将 Android Studio 升级到 1.0.2(并将 gradle 插件升级到 1.0.0)后停止工作,所以我必须添加以下更改,从 gradle 插件 1.3.1 开始:

flavorDimensions "price", "dataset"

productFlavors {
free { dimension "price" }
paid { dimension "price" }
dataset1 { dimension "dataset" }
dataset2 { dimension "dataset" }
}

android.applicationVariants.all { variant ->
def mergedFlavor = variant.mergedFlavor
switch (variant.flavorName) {
case "freeDataset1":
mergedFlavor.setApplicationId("com.beansys.freeappdataset1")
break
case "freeDataset2":
mergedFlavor.setApplicationId("com.beansys.freedataset2")
break
case "paidDataset1":
mergedFlavor.setApplicationId("com.beansys.dataset1paid")
break
case "paidDataset2":
mergedFlavor.setApplicationId("com.beansys.mypaiddataset2")
break
}
}

关于android - 如何使用 flavorDimensions 为每种 flavor 组合设置不同的 applicationId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26547559/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com