Android Studio支持子品味吗?

7

我有一个Android Studio项目,当前在build.gradle中有两个产品口味,如下所示:

productFlavors {
        parent {
            applicationId "xxx.parent"

        }
        teacher {
            applicationId "xxx.teacher"
        }
    }

这两种口味都有一些共同的代码位于src/main下

我需要的是再增加一层口味,因此我希望在一个口味下拥有子口味,这样可以增加一层定制(用于某些资源和某些静态变量)

所以我想要类似于以下内容:

productFlavors {
        parent {
            p1 {
                applicationId "xxx.parent.p1"
               }
            p2 {
                applicationId "xxx.parent.p2"
               }
        }
        teacher {
            t1 {
                applicationId "xxx.teacher.t1"
            }
            t2 {
                applicationId "xxx.teacher.t2"
            }
        }
    }

我的目标是拥有两种类型的应用程序(教师和家长),每种应用程序可以定制n次(它们将通过应用程序ID、资源文件和静态变量进行区分)。

你有任何想法如何实现这个目标吗?


你有没有得到任何关于子口味的相关答案或解决方法?在我的情况下,我有一个类似的要求,不像peter.bartos所提到的那样。我有10个口味使用相似的代码(父级),2个部分-第1个(一个口味)-第2个(其他九个口味)-2个子级。第二部分的代码也有一些小改动,因此可以将其视为子级或子口味。 - Mihir Trivedi
1个回答

3

是的,Gradle支持子flavor - flavorDimensions。例如:

flavorDimensions "server", "lib"

productFlavors {
    pub {
        dimension "server"
        minSdkVersion 19
        resValue "string", "app_version_name", mVersionName
    }
    beta {
        dimension "server"
        minSdkVersion 9
        resValue "string", "app_version_name", mVersionName + "beta"
    }
    xwalk {
        dimension "lib"
    }
    webkit {
        dimension "lib"
    }

在我的情况下,我有一个类似的要求,不像你提到的那样。我有10个口味,使用相似的代码(父级),分为2个部分-第1部分(一个口味)-第2部分(另外9个口味)- 2个子代。第2部分的代码也有一些小改动,因此将其视为子代或子口味。 - Mihir Trivedi
3
除非我漏掉了什么,这段代码表明可以存在不同的维度,但对于子口味没有提供任何信息。 - Marek J.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接