【问题标题】:Android library project does not compile its (java project) dependencies into its jarAndroid 库项目不会将其(java 项目)依赖项编译到其 jar 中
【发布时间】:2013-09-24 12:38:07
【问题描述】:

我有一个 android 库项目 - MonitoringModel - 它依赖于一个常规 java 项目 - Helpers(依赖项在 java 构建路径 > 项目中设置。Helpers 项目在 MonitoringModel 的“订购和导出”选项卡中打勾)。 MonitoringModel 生成一个 jar,我将其放入 servlet 项目的 libs 文件夹中,如 here 所述。一切都很好,直到 servlet 需要来自 Helpers 项目的方法:

Caused by: java.lang.NoClassDefFoundError: gr/uoa/di/java/helpers/Utils
 at gr.uoa.di.monitoring.model.Battery$BatteryFields$1.parse(Battery.java:59)
 at gr.uoa.di.monitoring.model.Battery$BatteryFields$1.parse(Battery.java:1)
 at gr.uoa.di.monitoring.model.Battery.parse(Battery.java:117)
 ... 24 more
Caused by: java.lang.ClassNotFoundException: gr.uoa.di.java.helpers.Utils
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)


然后我意识到导出的 jar(来自MonitoringModel)没有Helpers 包。 Helpers 项目没有创建任何 jar,所以我尝试将其 bin/ 文件夹添加为 Add Class Folder)


也将其添加到“订购和导出”选项卡中:

但仍然没有快乐。

那么我应该如何设置呢?

回顾:我所追求的是一种将常规java项目添加到android库项目并将其编译在android的jar中的方法图书馆项目 不知何故。 Τ他的问题不在于(java)类没有被导出 - 因为使用这些java类的方法没有编译在jar中正确。所以当他们被调用时,上面的异常就会被抛出。 Battery$BatteryFields$1.parse 方法是here

注意:将Helpers 项目直接添加到 servlets 项目并不能防止异常。抛出异常是因为当MonitoringModel.parse() 调用Helpers.listToString() 时,后者在monitoringmodel.jar 中找不到
目前我不得不将simply add(请参阅复制粘贴)Helpers packagesMonitoringModel

【问题讨论】:

  • @MLProgrammer-CiM:不幸的是没有 - 但我仍然对答案感兴趣。随意放置赏金:D
  • 我将构建过程移至 maven 并且似乎成功了。
  • @MLProgrammer-CiM:我不做 maven,但请发布详细的答案(对于 maven 菜鸟),我会通过

标签: android eclipse android-library


【解决方案1】:

您必须独立编译您的 Helper Java Project,并像普通 Java JAR 一样导出 JAR

然后,您必须将此 JAR 添加到 Monitor Android Library LIBS 文件夹。

现在您可以将 Monitor Android Library 添加到另一个项目(来自 Android Libraries 框),它将拥有您需要的源代码。

问题是项目选项卡不再编译引用的项目,因为某些 ADT 版本,所以它没用。

【讨论】:

  • 感谢您的回答,但请仔细阅读 - 当我最初使用项目选项卡时,我切换到了库选项卡 - 最重要的是:我想在非 android 项目中使用 MonitoringModel - 这是可能的正如我在问题中所说的(再次链接)here。我对此非常感兴趣 - 也许在 android 开发组中的帖子是有序的。
  • 另外,请提供有关 jaring 助手项目的更详细说明 - 最好是一些自动化方式(蚂蚁?)。
猜你喜欢
  • 1970-01-01
  • 2020-08-17
  • 2018-05-28
  • 2012-07-16
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多