我正在开发一个多口味的应用
。 (下面的 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时的错误
:
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.
[...]
最佳答案
我的 gradle 版本是 4.4。
在文档中, Android developer和 Android Plugin DSL Reference 表明,应该添加以下代码。
missingDimensionStrategy 'external'
missingDimensionStrategy 'target'
Android Plugin DSL Reference image
但这对我不起作用。最后,我在 feature.gradle 中添加了以下代码。
flavorDimensions 'target'
productFlavors {
internal {
dimension "target"
}
}
关于android - Gradle中基于多口味库的单口味模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47989894/