我有一个android 库项目——MonitoringModel
它依赖于一个常规的 java 项目—— Helpers
(依赖项是在 java 构建路径 > 项目中设置的。该Helpers
项目是在“订单和导出”选项卡中勾选的MonitoringModel
)。MonitoringModel
生成一个 jar,我将其放到 servlet 项目的 libs 文件夹中,如此处所述。一切都很好,直到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
注意:将Helpers
项目直接添加到 servlets 项目并不能防止异常。抛出异常是因为在monitoringmodel.jar中找不到后者的MonitoringModel.parse()
调用
我不得不简单地将包添加(请参阅复制粘贴)到.Helpers.listToString()
Helpers
MonitoringModel