使用 gradle 模块作为具有特定风格的依赖项

Bil*_*lda 4 android module gradle android-gradle-plugin

我有一个名为的库模块library,它有两种风格flavor1flavor2. 然后我有两个应用程序模块,让我们调用它们app1app2它们将使用这个库模块,每个模块都会以特定的风格使用它......例如。app1将始终libraryflavor1风味一起使用。我应该如何配置 gradle 依赖项以使其做我想做的事?如果我只是尝试implementation project(':library')app1 build.gradle它显然是行不通的,因为它不知道选择哪个味道..所以我尝试过类似的东西implementation project(path: ':library', configuration: 'flavor1Release'),但不工作过,它打印很像错误

ERROR: Unable to resolve dependency for ':app1@debug/compileClasspath': Could not resolve project :library.
Show Details
Affected Modules: app1

ERROR: Unable to resolve dependency for ':app1@debugAndroidTest/compileClasspath': Could not resolve project :library.
Show Details
Affected Modules: app1

ERROR: Unable to resolve dependency for ':app1@debugUnitTest/compileClasspath': Could not resolve project :library.
Show Details
Affected Modules: app1

ERROR: Unable to resolve dependency for ':app1@release/compileClasspath': Could not resolve project :library.
Show Details
Affected Modules: app1

ERROR: Unable to resolve dependency for ':app1@releaseUnitTest/compileClasspath': Could not resolve project :library.
Show Details
Affected Modules: app1
Run Code Online (Sandbox Code Playgroud)

我在 SO 上看到了一些问题,比如这里说从库模块复制风格到主应用程序模块,但这对我来说没有意义,app1对它一无所知flavor2,我不想在那里介绍它。

Sae*_*umi 5

您应该missingDimensionStrategyapp1和定义app2

例如:

// app1/build.gradle

 defaultConfig {
    missingDimensionStrategy 'library', 'flavor1'
}

// app2/build.gradle

 defaultConfig {
    missingDimensionStrategy 'library', 'flavor2'
}
Run Code Online (Sandbox Code Playgroud)