Gradle中基于多种风味库的单一风味模块 [英] Single flavor module based on multi flavor library in 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'
但它对我不起作用。最后,我在Feature.gradle中添加以下代码。
but it not work for me. Finally I add follow code in feature.gradle.
flavorDimensions 'target'
productFlavors {
internal {
dimension "target"
}
}
这篇关于Gradle中基于多种风味库的单一风味模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!