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

时间:2018-04-08 05:31:59

标签: java android gradle android-gradle android-library

我正在尝试在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

为什么?

P.S。另一种方式(Android依赖于Java)可以正常工作。

1 个答案:

答案 0 :(得分:6)

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

  

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

     

无法在项目:androidLibrary

的以下配置中进行选择      
      
  • debugApiElements
  •   
  • releaseApiElements
  •   

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

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

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

  

忽略模块'androidLibrary'对模块'javaLibrary'的依赖关系。 Java模块不能依赖于Android模块

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