Gradle中基于多种风味库的单一风味模块 [英] Single flavor module based on multi flavor library in Gradle

查看:144
本文介绍了Gradle中基于多种风味库的单一风味模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发具有多种风味的 app 。 (下面的分级文件)

I'm working on a multi-flavor app. (gradle files below)

它使用名为 tracker 的库,它们遵循相同的风格内部外部

It uses a library called tracker that follow the same flavors internal and external

现在,对于棘手的部分,有一个名为< codefeature ,这个没有味道,但是需要 tracker 作为依赖项

Now for the tricky part, come a new module called feature, this one has no flavor but it needs the tracker as dependency

app.gradle:

android {

    buildTypes {
        debug {
        }
        release {
        }
    }

    flavorDimensions "target"

    productFlavors {
        internal {
            dimension "target"
        }

        external {
            dimension "target"
        }
    }
}

tracker.gradle:

android {

    publishNonDefault true

    buildTypes {
        release {
        }
        debug {
        }
    }

    flavorDimensions 'target'

     productFlavors {
        internal {
            dimension "target"
        }

        external {
            dimension "target"
        }
    }
}

feature.gradle:

android {
    compileSdkVersion rootProject.ext.compileSdkVersion

    defaultConfig {
        compileSdkVersion rootProject.ext.compileSdkVersion
        buildToolsVersion rootProject.ext.buildToolsVersion

        defaultConfig {
            minSdkVersion rootProject.ext.minSdkVersion
            targetSdkVersion rootProject.ext.targetSdkVersion
            versionCode 1
            versionName "1.0"
            javaCompileOptions {
                annotationProcessorOptions {
                    includeCompileClasspath false
                }
            }
        }
    }

}

dependencies {
    implementation(
            [...]
            project(':tracker')
    )
}

以下是错误,当我尝试渐变同步时:

Unable to resolve dependency for ':feature@debug/compileClasspath': Could not resolve project :tracker.

Could not resolve project :tracker.
Required by:
    project :feature
 > Project :feature declares a dependency from configuration 'implementation' to configuration 'externalRelease' which is not declared in the descriptor for project :tracker.

Unable to resolve dependency for ':feature@debugAndroidTest/compileClasspath': Could not resolve project :tracker.

Could not resolve project :tracker.
[...]


推荐答案

我的礼物版本是4.4。

My gradle version is 4.4.

在文档中,
Android开发人员 Android插件DSL参考
表明,应该添加跟随代码。

In doc, Android developer and Android Plugin DSL Reference show that, should add follow code.

missingDimensionStrategy 'external'
missingDimensionStrategy 'target'

Android开发者链接图片

Android插件DSL参考图像

但它对我不起作用。最后,我在Feature.gradle中添加以下代码。

but it not work for me. Finally I add follow code in feature.gradle.

flavorDimensions 'target'

 productFlavors {
    internal {
        dimension "target"
    }
}

这篇关于Gradle中基于多种风味库的单一风味模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆