gpt4 book ai didi

android - 如何在 app/build.gradle 文件中获取当前选择的产品口味

转载 作者:行者123 更新时间:2023-12-03 03:41:45 25 4
gpt4 key购买 nike

例如,我有 area1 和 area2 风格,但只有 area2 有 google gms 依赖,我只想将 gms 插件应用到 area2,所以我需要决定current flavors as area == 'area2',显然这不可能成功,那我该怎么办呢?

flavorDimensions "area"
productFlavors {
area1 {
dimension "area"
applicationId 'com.sample.area1'
}
area2 {
dimension "area"
applicationId 'com.sample.area2'
}
}
dependencies {
area2Implementation 'com.google.android.gms:play-services-auth: 16.0.1'
}
if(area == 'area2') {
apply plugin: 'com.google.gms.google-services'
}

最佳答案

只需在您的 Android block 中添加以下 android.applicationVariants.all 配置:

android {

// Flavor definitions here
productFlavors {
// ...
}

android.applicationVariants.all { variant ->

if (variant.flavorName == "area2") {
apply plugin: 'com.google.gms.google-services'
}
}
}

==== 2019 年 7 月 1 日更新 ====

只需意识到上面的 android.applicationVariants.all block 每次都针对所有 构建变体执行(即,如果您有 2 种构建类型和 3 种风格,它将是被所有 6 种变体击中)。而它实际上是为各个变体准备不同的配置,以便稍后构建。

所以为了达到目的我们需要在构建阶段应用插件。不确定是否有更好的方法,但我设法做了一些棘手的事情,比如:

if (getGradle().getStartParameter().getTaskRequests().toString().contains("Area2")) {
apply plugin: 'com.google.gms.google-services'
}

我把它放在 Gradle 文件的末尾,在 Android block 之外(“应用插件” block 最初所在的位置)。另请注意,如果您使用 println在 gradle 控制台中查看。

关于android - 如何在 app/build.gradle 文件中获取当前选择的产品口味,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54032562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com