gpt4 book ai didi

android - build.gradle:有条件地在产品变体中包含功能

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

我有一个包含多个产品变体的项目。
目前,我正在使用以下方式指定是否要包含特定功能-在build.gradle文件的末尾执行此操作:

productFlavors
{
customapp1 {
applicationId "com.app.id1"
},
customapp2 {
applicationId "com.app.id2"
},
....
}
if(extensions_ads) {
dependencies {
println "Adding ads dependencies"
compile 'com.google.android.gms:play-services-ads:8.3.0'
}

android.sourceSets.main {
java.srcDirs += ['./src/extensions/ads'];
}
}
else{
android.sourceSets.main {
java.srcDirs += ['./src/extensions/noads'];
}
}

如您所见,extensions_ads是一个全局变量,我想拥有以下内容:
productFlavors
{
customapp1 {
extensions_ads true
applicationId "com.app.id1"
},
customapp1 {
extensions_ads false
applicationId "com.app.id1"
}
}
  • 我应该如何定义extensions_ads作为 flavor 定义的一部分。
  • 如何遍历所有口味并检查该标志?
  • 最佳答案

    我将遵循另一种逻辑来限制您的依赖项或Sourceset资源。

    您可以仅为 flavor 或buildType或buildVariant添加依赖项。

    例如:

    dependencies {
    flavor1Compile 'com.google.android.gms:play-services-ads:8.3.0'
    }

    同样,您可以为每种口味使用不同的文件夹,而无需在 android.sourceSets文件中指定 build.gradle
    + src
    + main
    + java
    + res
    + flavor1
    + java
    + res
    + flavor2
    + java
    + res

    当然,如果这还不够,您可以为某种 flavor 指定android.sourceSets,例如:
    sourceSets{
    main {
    //
    }

    flavor1.java.srcDirs = [ ...]
    flavor1.res.srcDirs = [ ... ]
    ...

    flavor2.java.srcDirs = [...]
    flavor2.res.srcDirs = [...]
    ...
    }

    关于android - build.gradle:有条件地在产品变体中包含功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34943843/

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