Android的库项目不会编译它(Java项目)依赖关系到它的罐子(Android library

2019-10-18 15:58发布

我有一个Android libary项目 - MonitoringModel -它依赖于一个普通的Java项目 - Helpers (依赖于Java构建路径>项目设置的。 Helpers项目中的“顺序和导出”选项卡中勾选MonitoringModel )。 MonitoringModel产生一个罐子,我下降到一个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)


后来我意识到,导出的罐子(从MonitoringModel )早已不是Helpers包。 该Helpers项目不会产生任何广口瓶,所以我尝试添加其bin/文件夹中添加类文件夹 )


将它也是在“订单和出口”选项卡:

但仍然没有喜悦。

所以,我应该怎么设置呢?

重点回顾:我所追求的是一个普通的Java项目添加到一个Android库项目 ,并有此编译在Android库项目的罐子莫名其妙的方式。 Τhe问题是没有这么多的(JAVA)类不出口-作为使用这些Java类方法没有在罐子编译 正确 。 所以他们被称为上面时抛出异常。 该Battery$BatteryFields$1.parse方法是在这里 。

注意:添加Helpers直接投射到servlet的项目不会阻止例外 。 该异常被抛出,因为当MonitoringModel.parse()调用Helpers.listToString()后者是无处monitoringmodel.jar被发现
就目前而言,我不得不简单地增加 (见复制粘贴)的Helpers MonitoringModel

Answer 1:

你必须编译你的助手Java项目的独立,并导出一个JAR像一个普通的Java JAR

然后,你必须添加这个JAR监视的Android库libs文件夹。

现在,您可以将显示器的Android库添加到另一个项目(从Android的库箱),这将有你需要的资源。

问题是,该项目标签不能编译了,因为有些ADT版本引用的项目,所以它也没用。



文章来源: Android library project does not compile its (java project) dependencies into its jar