未能解决项目:Android 库和 Java 库模块依赖关系

我正在尝试创建一个项目,其中包括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')
}
...

安卓 ():build.gradle

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

尝试同步项目时,我收到以下错误:

未能解决: 项目::机器人

为什么?

附言相反,Android依赖于Java,工作得很好。


答案 1

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

Cause: org.gradle.internal.component.AmbiguousConfigurationSelectionException:

无法在项目的以下配置之间进行选择:android库

  • debugApiElements
  • 发布ApiElements

AGP 混淆了选择哪个变体。检查这个答案后,我们可以找到如何克服这个问题:

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

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

忽略模块“androidLibrary”对模块“javaLibrary”的依赖性。Java模块不能依赖于Android模块

因此,插件似乎不支持您尝试执行的操作。参考类似的问题,尼克·卡多佐试图澄清这个案子。


答案 2

推荐