无法解析项目:Android 库和 Java 库模块依赖关系

Failed to resolve project: Android library and Java library module dependency

我正在尝试在 Android Studio (3.1) 中创建一个包含 Android 库和 Java 库的项目。 Java 库依赖于 Android 库。两者都是我项目中的模块,如下所示:

MyProject    
|-android
|-java

两者都出现在 settings.gradle:

include ':android', ':java'

而 Java 库依赖于 Android 库,如下所示:

java (build.gradle):

apply plugin: 'java-library'

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':android')
}
...

android (build.gradle):

apply plugin: 'com.android.library'
...

尝试同步项目时出现以下错误:

Failed to resolve: project::android

为什么?

P.S. 反过来(Android 取决于 Java)效果很好。

首先让我们尝试修复构建错误。让我们 运行 ./gradlew build --stacktrace 查看更详细的输出:

Caused by: org.gradle.internal.component.AmbiguousConfigurationSelectionException:

Cannot choose between the following configurations of project :androidLibrary:

  • debugApiElements
  • releaseApiElements

AGP is confused which variant to choose. After inspecting 回答,我们可以找到解决问题的方法:

implementation project(path: ':androidLibrary', configuration: 'default')

尝试将项目与该设置同步后,您将在控制台中看到以下输出:

Ignoring dependency of module 'androidLibrary' on module 'javaLibrary'. Java modules cannot depend on Android modules

因此,该插件似乎不支持您尝试执行的操作。 参考 similar question,Nick Cardoso 试图澄清这个案例。