无法解析项目: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 试图澄清这个案例。
我正在尝试在 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 试图澄清这个案例。