如何将Java Gradle子模块添加到我的Android模块?

5
假设我在 IntelliJ Idea 中使用 Gradle 有一个名为 MyApplication 的 Android 应用项目。我的意图是将一个普通的 Java 库模块(而不是 Android 库项目)作为子模块添加到 MyApplication 中。我们称这个模块为 testlib。然后,当整个项目构建完成后,我希望将该模块编译成 jar 并包含到 MyApplication 的 /libs 文件夹中。
我的尝试:我创建了一个子模块 testlib,并将其作为 MyApplication 的依赖项包含进来,但是我得到了以下警告:
“警告:Gradle:模块'testlib'将不会被编译。不幸的是,您不能在同一项目中拥有非 Gradle Java 模块和 Android-Gradle 模块。”
这种情况是否可能发生?

1
肯定是可以的。我有一个项目,其中包含Java模块和Android模块。看起来你的Java模块可能没有配置为Gradle模块,所以这将是第一件要修复的事情。然后,您需要添加一个自定义Gradle任务,首先构建Java模块,然后将编译后的jar文件复制到libs文件夹中,最后构建Android模块。我现在没有时间给你任何代码,但希望这能指引你朝着正确的方向前进。 - athor
你解决了这个问题吗?我也遇到同样的问题,卡住了 :( - ardabro
我得到了相同的错误。我有一个使用Maven的Java模块和一个Android Gradle模块。 - kamokaze
2个回答

0

IntelliJ IDEA不支持在一个项目中同时使用Gradle和非Gradle模块。JetBrains论坛上的一篇评论清楚地指出了这一点。

解决方案是将Maven模块转换为Gradle模块,或者将项目拆分为两个部分。如果选择后者,建议在构建Gradle项目之前使用Maven构建普通的Java库模块,然后您仍然可以在Android应用程序项目中使用它作为依赖项。

请注意,在多模块Gradle项目中使用不同的Java语言源级别可能存在问题。由于IntelliJ IDEA或Gradle中的一个漏洞,它们无法正确处理。 (是否应在IDE或Gradle中修复此问题仍有待讨论。)


0

如果您在IntelliJ中创建了一个Android Gradle项目,那么当您转到“添加新模块”窗口时,您应该会看到像这样的“Gradle: Java库”选项:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接