我有一个Android应用程序有两种口味,免费和高级。我想创建另一种味道,flavorExt,它基于免费的味道,但有一些额外的功能。我使用gradle中的sourceSets选项完成了这项操作,如下所示:
sourceSets {
freeExt {
java.srcDirs = sourceSets.free.java.srcDirs
res.srcDirs = sourceSets.free.res.srcDirs
resources.srcDirs = sourceSets.free.resources.srcDirs
}
}
现在我想为freeExt风格添加一些额外的功能,但我不知道这是否可行,如果可行,它是如何完成的。我已经将flavor源文件夹创建为app / src / freeExt / java / ...并在其中添加了必要的文件。我还在gradle的sourceSets条目中添加了以下行而没有成功:
java.srcDirs = sourceSets.free.java.srcDirs
我想在gradle中做什么?如果是这样,怎么办呢?
答案 0 :(得分:2)
我建议为添加的功能创建第二个flavor维度。 You can find the documentation on multiple flavor dimensions here
你的build.gradle看起来像这样:
android {
flavorDimensions "tier", "extras"
productFlavors {
free {
dimension "tier"
...
}
full {
dimension "tier"
...
}
withExtras {
dimension "extras"
...
}
noExtras {
dimension "extras"
...
}
}
}
Android Gradle插件将使用每个维度中每种风格的交叉产品生成变体。因此,您最终会得到freeWithExtras
,freeNoExtras
,fullWithExtras
和fullNoExtras
。您不一定需要发布所有四种变体。