【发布时间】:2017-12-27 09:50:27
【问题描述】:
我正在开发多种口味的 app。 (下面的gradle文件)
它使用一个名为 tracker 的库,遵循相同的风格 internal 和 external
现在是棘手的部分,来一个名为 feature 的新模块,这个模块没有味道,但它需要 tracker 作为依赖项
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')
)
}
这是我尝试gradle sync时的errors:
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.
[...]
【问题讨论】:
-
试试这个:
implementation project(path: ':tracker', configuration: 'externalRelease') -
> Project :feature 声明了从配置“implementation”到配置“externalRelease”的依赖关系,该依赖关系未在 project :tracker 的描述符中声明。
标签: android gradle build.gradle android-productflavors android-build-flavors