【发布时间】: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 packages 到MonitoringModel。
【问题讨论】:
-
@MLProgrammer-CiM:不幸的是没有 - 但我仍然对答案感兴趣。随意放置赏金:D
-
我将构建过程移至 maven 并且似乎成功了。
-
@MLProgrammer-CiM:我不做 maven,但请发布详细的答案(对于 maven 菜鸟),我会通过
标签: android eclipse android-library