相关疑难解决方法(0)

使用 Gradle Kotlin-DSL 时,如何使用flavorDimensions为每种风味组合设置不同的applicationId?

我正在使用 Kotlinscript 文件将 Android 应用程序转换为 Gradle Kotlin-DSL。

我在转换逻辑时遇到问题applicationId。我们不使用defaultConfigurationwith applicationIdplus 各种applicationIdSuffix口味来表达我们的口味,而是使用自定义逻辑。这个逻辑在这个 SO 答案中进行了描述,下面是常规代码:

flavorDimensions "price", "dataset"

productFlavors {
    free { dimension "price" }
    paid { dimension "price" }
    dataset1 { dimension "dataset" }
    dataset2 { dimension "dataset" }
}

android.applicationVariants.all { variant ->
    def mergedFlavor = variant.mergedFlavor
    switch (variant.flavorName) {
        case "freeDataset1":
            mergedFlavor.setApplicationId("com.beansys.freeappdataset1")
            break
        case "freeDataset2":
            mergedFlavor.setApplicationId("com.beansys.freedataset2")
            break
        case "paidDataset1":
            mergedFlavor.setApplicationId("com.beansys.dataset1paid")  
            break
        case "paidDataset2":
            mergedFlavor.setApplicationId("com.beansys.mypaiddataset2")
            break
    }
}
Run Code Online (Sandbox Code Playgroud)

对于 kotlin,我无法改变groovy 中的类似applicationId …

android gradle gradle-kotlin-dsl

6
推荐指数
1
解决办法
3319
查看次数

标签 统计

android ×1

gradle ×1

gradle-kotlin-dsl ×1