我有一个 android libary项目 - MonitoringModel
- 这取决于 常规java项目 - Helpers
(依赖项在java构建路径> Projects中设置。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)
在“订单和导出”标签中添加它:
但仍然没有快乐。
那我该如何设置呢?
RECAP:我所追求的是一种将常规java项目添加到android库项目中的方法并在android的jar中编译图书馆项目不知何故。问题不在于没有导出(java)类 - 因为使用这些java类的方法不能正确地编译在jar 中。所以当他们被调用时,抛出上面的异常。 Battery$BatteryFields$1.parse
方法为here。
注意:将Helpers
项目直接添加到servlet项目不会阻止异常 。抛出异常是因为当MonitoringModel.parse()
调用Helpers.listToString()
后,无法在monitoringmodel.jar 中找到
目前,我必须simply add(请参阅复制粘贴)将Helpers
包添加到MonitoringModel
。
答案 0 :(得分:0)
您必须独立编译Helper Java项目,并像普通Java JAR一样导出JAR
然后,您必须将此JAR添加到Monitor Android Library LIBS文件夹。
现在您可以将Monitor Android Library添加到另一个项目(来自Android Libraries框),它将拥有您需要的源。
问题是项目选项卡不再编译自某些ADT版本以来引用的项目,所以它没用。