【发布时间】:2013-04-17 17:00:26
【问题描述】:
我正在使用 IntelliJ 12 。
我有一个Module A,它具有对 github 项目的模块依赖项。我在我的主要Module B 中添加了对Module A 的依赖。
Module A 依赖于 module1, module2, module3 , ...
Module B 依赖于Module A
但是 Module B 没有找到对 module1、module2 的任何引用...这就是我在 Eclipse 中声明它的方式(“添加库项目”)并且它有效。
现在,如果我将module1、module2 添加到Module B,它将影响Module B project.properties 与Eclipse 混淆。我可以从 Eclipse 得到这个
Dex Loader] 无法执行 dex:多个 dex 文件定义
Module B] 转换为 Dalvik 格式失败:无法执行 dex:多个 dex文件
在 IntelliJ 中从本身包含多个依赖项的模块添加依赖项的正确方法是什么?
编辑 我按照 CrazyCoder 的指示进行操作。然后 IntelliJ 告诉我们
Android Dex:[模块 B] 意外的顶级异常:Android Dex: [模块 B] java.lang.IllegalArgumentException:已添加: Landroid/support/v4/app/ShareCompat$ShareCompatImplJB;安卓德克斯: [模块 B] 在 com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123) Android Dex:[模块 B] 在 com.android.dx.dex.file.DexFile.add(DexFile.java:163)
module1、module2 中的一些...在 libs 文件夹中包含 android-support-v4.jar。 jar 依赖项已添加但未导出。
只有 Module A 的库(包含 libs 文件夹中的所有 jar)导出
【问题讨论】:
-
为模块 A 中您希望模块 B 使用的依赖项启用 Export 复选框。
-
感谢 CrazyCoder,您在 UI 中哪里可以找到此复选框?读完这个jetbrains.com/idea/webhelp/dependencies-tab.html 还是没有头绪
-
this screenshot 有帮助吗?
-
避免多个依赖项,
android-support-v4.jar应该只在其中一个模块中出现一次,并通过依赖项对其他模块可用。
标签: android intellij-idea