相关疑难解决方法(0)

Android Studio:Gradle Product Flavors:定义自定义属性

我正在Gradle(Android Studio)中构建Android应用程序的不同产品风格.

因此我定义了以下产品口味:

android {

    project.ext.set("customer", "")
    project.ext.set("server", "")

    //Configuration happens here - code removed for readability

    buildTypes {

        debug {
            server = "test"
        }

        release {
            server = "release"
        }
    }

    //Available product flavors
    productFlavors {
        customerA{
            customer = "a"
        }
        customerB{
            customer = "b"
        }
        customerC{
            customer = "c"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,稍后,当我在我的一个构建任务中访问定义的项目属性"customer"(其值在我正在构建的产品风格中设置)时,即使iam构建customerA,它也始终具有值"c"(在这种情况下,财产客户应该是"a"而不是"c").例如,我稍后执行以下任务:

preBuild << {
    println "Building customer: " + customer
}
Run Code Online (Sandbox Code Playgroud)

它始终打印:

建立客户:c

所以我猜有一些覆盖发生?可能与配置VS执行阶段有关?不知道如何/为什么,所以任何帮助都非常感谢.

更新:或者它会让我进一步确定产品风格的名称(没有附加到它的构建类型名称)和构建类型(再次:没有产品风味名称前置),在gradle构建的执行阶段.

考虑到上述配置,预期的产品风味名称将是:customerA,customerB和customerC.

android gradle android-gradle-plugin

21
推荐指数
3
解决办法
1万
查看次数

标签 统计

android ×1

android-gradle-plugin ×1

gradle ×1