在Android Studio中,我有一个Android模块,我们称它为MyAndroid。我也有一个Java模块(不是一个独立的JAR,而是一个模块中的完整Java项目),我们称之为MyJava。

我希望MyAndroid将MyJava用作项目依赖项。我尝试使用标准项目编译:
compile project(':myjava')
MyAndroid可以编译,甚至在“外部库”下也可以看到myjava.jar,但是MyAndroid源代码看不到MyJava源代码中的任何类。好像根本没有链接MyJava。

难道我做错了什么?当依赖Java模块而不是其他Android模块时,是否还有其他细节?

编辑
我打开MyAndroid.iml文件,看是否有明显损坏的东西。我注意到MyJava没有。我手动添加:
<orderEntry type="module" module-name="myjava" exported="" />
这似乎已经解决了源代码解析问题。但是我认为这种手动更改将在我运行另一个Gradle同步时消失。知道为什么它不存在以及如何告诉Gradle这样做吗?

编辑#2
我仍然不知道为什么Java模块无法正确链接到MyAndroid,但是我放弃并添加了一个Gradle任务,该任务将<orderEntry>节点强制放入IML文件中:

我改编了这个答案中的代码示例,以满足我的需求:
https://stackoverflow.com/a/24138659/3724038

最佳答案

我将Android Studio从2.2更新到了2.3,此问题消失了,因此看起来像是IDE错误。

07-28 01:06