生也有涯,知也无涯。这篇文章主要讲述无法解析项目: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库模块依赖项)】附:反过来(Android取决于Java)工作得很好。
答案首先让我们尝试修复构建错误。让我们运行
./gradlew build --stacktrace
来查看更详细的输出:引起:org.gradle.internal.component.AmbiguousConfigurationSelectionException:AGP混淆了哪个变种可供选择。在检查this答案后,我们可以找到如何克服这个问题:
无法在以下项目配置之间进行选择:androidLibrary:
- debugApiElements
- releaseApiElements
implementation project(path: ':androidLibrary', configuration: 'default')
尝试将项目与该设置同步后,您将在控制台中看到以下输出:
忽略模块'java Library'中模块'android Library'的依赖。 Java模块不能依赖于Android模块因此,插件似乎不支持您尝试执行的操作。请参阅similar question,其中Nick Cardoso试图澄清此案。
推荐阅读
- 从java模块引用android库
- 我安装了Android Studio,但我无法通过命令行访问gradle
- 使用Android Studio 3.1和build构建项目时出错(gradle 3.1.0)
- Gradle android无法找到符号Context
- Android Studio 3.1 gradle build抛出java.util.zip.ZipException
- Android Studio 3.1陷入“Building *** Gradle项目信息”
- 添加Android特定外部库
- 当内部类依赖于R.java时,Gradle在Android Javadocs中排除R.java
- 关于最新的android studio 3.0.1的Gradle 4.1问题