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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法解析项目: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')
}
...

android(build.gradle):

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

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

无法解决:project :: android

为什么?

附:反过来(Android取决于Java)工作得很好。

答案

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

引起:org.gradle.internal.component.AmbiguousConfigurationSelectionException:

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

  • debugApiElements
  • releaseApiElements

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

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

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

忽略模块'java Library'中模块'android Library'的依赖。 Java模块不能依赖于Android模块

因此,插件似乎不支持您尝试执行的操作。请参阅similar question,其中Nick Cardoso试图澄清此案。

以上是关于无法解析项目:Android库和Java库模块依赖项的主要内容,如果未能解决你的问题,请参考以下文章

具有依赖关系的 Android 库无法正确解析

创建一个包含所有颤振库和依赖项的 aar

错误:无法解析':app @ debug / compileClasspath'的依赖项:无法解析项目:将应用程序模块添加到android应用程序中

Android开发,关于依赖库和JAR包的区别以及

无法将 git 存储库解析为 android gradle 中的依赖项

同步 gradle 的问题:无法解析外部依赖项 com.android.tools.build:gradle,因为没有定义存储库