如何在android中的gradle中动态启用flavor

时间:2015-04-13 06:37:28

标签: android gradle

我使用android studio和gradle构建我的Android应用程序。 我的应用程序有三种构建类型(调试,测试,发布)和一百多种口味。 当我通过工作室构建调试apk或执行任何gradle任务时。在配置步骤中,gradle将花费大约1分钟来配置三百个构建变体。 太可怕了。

有没有办法在开发中禁用所有口味,只有在我的ci服务器上发布时才启用所有口味?

我试过了。

project.ext.enableFlavor = project.hasProperty('enableFlavor')
    if(project.ext.enableFalvor){
    android{
        productFlavors {
            wxy {
                manifestPlaceholders = [SCHOOL_URL: "wxy.wqapp.cn", SCHOOL_EDITION: "0"]
        }
        wxy001 {
            manifestPlaceholders = [SCHOOL_URL: "nnu.wqapp.cn", SCHOOL_EDITION: "1"]
        }
        wxy001 {
            manifestPlaceholders = [SCHOOL_URL: "nnu.wqapp.cn", SCHOOL_EDITION: "1"]
        }
        ...
    }
}

然而,当我执行

gradlew clean assemble -PenableFlavor

我收到错误:

Cannot add task ':wxy:assembleTest' as a task with that name already exists.

谁能帮助我。感谢。

1 个答案:

答案 0 :(得分:0)

似乎我的自定义构建类型不能命名为“test”,尽管没有任何名称被命名为“test”。 我将构建类型“test”更改为“testp”,然后成功。