【问题标题】:Failed to resolve project: Android library and Java library module dependency无法解析项目:Android库和Java库模块依赖
【发布时间】:2018-09-17 18:40:02
【问题描述】:

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

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

无法解决:project::android

为什么?

P.S. 反过来(Android 取决于 Java)也可以正常工作。

【问题讨论】:

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


    【解决方案1】:

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

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

    无法选择项目:androidLibrary的以下配置:

    • 调试ApiElements
    • releaseApiElements

    AGP 对选择哪个变体感到困惑。查看this的答案后,我们可以找到解决问题的方法:

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

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

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

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

    【讨论】:

    • 我认为它可能不受支持。不幸的是,您的答案和您链接的答案都没有提供任何其他解决问题的方法(我知道其他答案列出了 3 个“解决方案”,但它们都没有真正解决问题,他们都建议做其他事情)。跨度>
    • 重点是 - 你不能做你想做的事,Android Gradle 插件不支持。考虑到存在的限制,我看不出您如何实现这一目标。
    • 出色的答案!正是我遇到的问题。很好的解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 2020-11-15
    • 1970-01-01
    相关资源
    最近更新 更多