创建一种使用 gradle 扩展另一种风味的风味

a.p*_*.p. 3 android gradle

我有一个 Android 应用程序,它有两种风格,免费和高级。我想创建另一种风味,flavorExt,它基于自由风味但具有一些附加功能。我已经使用 gradle 中的 sourceSets 选项完成了此操作,如下所示:

   sourceSets {
        freeExt {
            java.srcDirs = sourceSets.free.java.srcDirs
            res.srcDirs = sourceSets.free.res.srcDirs
            resources.srcDirs = sourceSets.free.resources.srcDirs
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在我想为 freeExt 风格添加一些额外的功能,但我不知道这是否可行,如果可行,如何实现。我已将风味源文件夹创建为 app/src/freeExt/java/... 并在其中添加了必要的文件。我还在 gradle 的 sourceSets 条目中添加了以下行,但没有成功:

java.srcDirs = sourceSets.free.java.srcDirs
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的事情在 gradle 中可行吗?如果是这样,怎么做?

Tan*_*.7x 5

我建议为添加的功能创建第二个风味维度。您可以在此处找到有关多种风格维度的文档

你的 build.gradle 看起来像这样:

android {

    flavorDimensions "tier", "extras"

    productFlavors {
        free {
          dimension "tier"
          ...
        }

        full {
          dimension "tier"
          ...
        }

        withExtras {
          dimension "extras"
          ...
        }

        noExtras {
          dimension "extras"
          ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Android Gradle 插件将使用每个维度中每种风格的叉积生成变体。因此,您将得到一个freeWithExtras, freeNoExtras,fullWithExtrasfullNoExtras。您不一定需要发布所有四个变体。