【问题标题】:Add a module dependency which contains other dependencies添加包含其他依赖项的模块依赖项
【发布时间】: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 没有找到对 module1module2 的任何引用...这就是我在 Eclipse 中声明它的方式(“添加库项目”)并且它有效。
现在,如果我将module1module2 添加到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)

module1module2 中的一些...在 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


【解决方案1】:

感谢 CrazyCoder,我从 Module A 导出了所有依赖项

对于同一个 .jar 的多个依赖。我只是将 android-support-v4.jar 设置为Project Library。读完Intellij: android-support-v4.jar in included in actionBarSherlock and Project => IllegalArgumentException。在所有引用它的模块中,我将 android-support-v4 的范围从 Compile 更改为 Provided

【讨论】:

  • 这把我逼疯了!如果我能不止一次地支持你的答案,我会的!谢谢。
  • 将范围从“编译”更改为“提供”是非常重要的一步!感谢分享@raychenon
  • 回顾这篇旧文章,我很高兴 Gradle 现在可以处理依赖关系 :)
猜你喜欢
  • 1970-01-01
  • 2019-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-20
  • 1970-01-01
  • 2015-11-06
相关资源
最近更新 更多