android - 特定 flavor 依赖性

标签 android gradle android-gradle-plugin

我在为 debugrelease 构建类型以及维度指定不同的依赖项时遇到问题。

在我的 app.gradle 中,我指定了 1 个维度2 个 productFlavors,如下所示:

android {

    [...]

    flavorDimensions "tier"
    productFlavors {
        free {
            dimension "tier"
        }
        paid {
            dimension "tier"
        }
    }
}

现在我想为所有构建变体指定不同的依赖项(freeDebugfreeReleasepaidDebugpaidRelease),我试过这样做:

dependencies {
    freeDebugImplementation "com.someDependency:free-debug:1.0.0";
    paidDebugImplementation "com.someDependency:paid-debug:1.0.0";

    freeReleaseImplementation "com.someDependency:free-release:1.0.0";
    paidReleaseImplementation "com.someDependency:paid-release:1.0.0";
}

然而,这失败了

Could not find method freeDebugImplementation() for arguments [com.someDependency:free-debug:1.0.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

也许我以错误的方式接近了这个要求。任何帮助将不胜感激。

P.S 我正在使用版本 3.1.2 的 android gradle 插件和版本 4.7 的 gradle wrapper。

最佳答案

This section Android Studio 手册的指示您需要在使用变体配置之前显式声明变体配置,即:

configurations {
    freeDebugImplementation
    paidDebugImplementation
    freeReleaseImplementation
    paidReleaseImplementation
}

我不知道情况是否仍然如此,但值得一试。

关于android - 特定 flavor 依赖性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50044684/

相关文章:

android - Firebase 身份验证 - 没有来自谷歌登录提供商的电子邮件

android - 无法将项目添加到 android 上的数据库

android - 如果另一个任务依赖于第一个任务运行,Gradle任务不会删除文件

gradle - 如何使用 Gradle 设置多项目 IntelliJ 工作区?

android - 无法解析 : com. android.support :cardview-v7:26. 0.0 android

android - 通过 gradle 中的任务更改依赖项

java - 如何在 Android 中处理 <br/> 标签

android - 无法解析符号 'MultiDex'

java - Gradle Heroku 任务 'stage'

build - 内存不足后,VSTS中的Android应用程序的Gradle构建失败