java - 无法解析项目 : Android library and Java library module dependency

标签 java android gradle android-gradle-plugin 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')
}
...

安卓(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 对选择哪个变体感到困惑。检查 this answer 后,我们可以找到解决问题的方法:

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 试图澄清这个案例。

关于java - 无法解析项目 : Android library and Java library module dependency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714744/

相关文章:

java - 修复 Android 8+ 上的 'background service' 问题

android - 私有(private) bitbucket maven repo

java - Android 应用程序的自定义日志记录

android - org.gradle.api.tasks.TaskExecutionException:任务执行失败。.原因:org.gradle.api.internal.tasks.compile.CompilationFailedException:

Android:Gradle generateDebugSources 问题

java - 使用 IKVM 将 .jar 导入 .dll 并使用它

java - 在 onCreate inputfilter 中使用 void 的值

java - hibernate NoCacheRegionFactoryAvailableException

android - 以编程方式更改 Android 设置 "Schedule power on and off"

java - 在带有分隔符的 ListView 中显示 JSON