You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多Flavor依赖库使用:如何在App Gradle中引入指定Flavor版本

在Android应用中使用依赖库的不同Flavor配置方案

我来给你一步步拆解怎么在App里用上依赖库的不同Flavor,核心思路就是让App的Flavor配置和依赖库对齐,这样Gradle就能自动匹配对应的变体了:

第一步:对齐App与依赖库的Flavor维度配置

首先,你得在App模块的build.gradle(或build.gradle.kts)里,配置和依赖库完全一致的flavor维度,以及对应的Product Flavors。因为依赖库用了dim作为维度,所以App也要同步配置:

android {
    // 保留你原本的compileSdk、defaultConfig等基础配置
    flavorDimensions "dim"
    productFlavors {
        nocustomer {
            dimension = "dim"
            // 可选:给App的这个Flavor加版本后缀,方便区分构建产物
            versionNameSuffix "-nocustomer-app"
        }
        // 如果你的App也需要支持customer001 Flavor,同样添加配置
        customer001 {
            dimension = "dim"
        }
    }
}

第二步:引入对应Flavor的依赖库

接下来分两种场景处理:

场景1:依赖库是本地子模块

如果依赖库是你项目里的一个子模块(比如叫:my-library),直接正常引入依赖即可——因为我们已经对齐了维度和Flavor名称,Gradle会自动匹配对应的变体(比如App构建nocustomerDebug时,会自动拉取依赖库的nocustomerDebug变体):

dependencies {
    implementation project(':my-library')
}

场景2:依赖库是远程Maven仓库依赖

如果依赖库已经发布到Maven仓库(比如公司私有库或MavenCentral),不同Flavor的依赖会带有对应的后缀。假设你的依赖库groupId是com.yourcompany,artifactId是base-lib,版本是1.0.0:

  • 要使用nocustomer Flavor的依赖,写法如下:
dependencies {
    implementation 'com.yourcompany:base-lib-nocustomer:1.0.0'
}
  • 同理,customer001的依赖写法是:
dependencies {
    implementation 'com.yourcompany:base-lib-customer001:1.0.0'
}

要是已经对齐了Flavor维度,你也可以直接写基础artifactId,Gradle会根据当前构建的App Flavor自动匹配对应的依赖库变体:

dependencies {
    implementation 'com.yourcompany:base-lib:1.0.0'
}

第三步:构建对应变体的App

最后,在Android Studio的Build Variants面板里,选择App的nocustomerDebug或nocustomerRelease变体,点击构建按钮即可——生成的App就会使用依赖库的nocustomer Flavor版本。

内容的提问来源于stack exchange,提问作者Andrea Giga Ravalli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:09:59