2013-09-24 64 views
1

我有一個機器人libary項目 - MonitoringModel - 這取決於普通的Java項目 - Helpers(依賴於集java build path> Projects。Helpers項目在MonitoringModel的「訂單和導出」標籤中打勾)。 MonitoringModel產生一個jar,我將它放到一個servlet項目的libs文件夾中,如here所述。直到所有被罰款需要一種方法從Helpers項目的servlet:的Android庫項目不編譯它(Java項目)依賴關係到它的罐子

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/文件夾Add Class Folder


enter image description here

增加它也是 「訂單和出口」 選項卡:

enter image description here

但仍然沒有喜樂。

那麼我該如何設置呢?

回顧:我所追求的是一個辦法在Android庫項目莫名其妙的jar添加一個普通的Java項目到一個Android庫項目和有此編譯。問題不在於導出(Java)類 - 因爲使用這些java類的方法不是編譯在罐子正確。所以當他們被稱爲上面的異常被拋出時。 Battery$BatteryFields$1.parse方法是here

注:直接添加Helpers項目Servlet的項目並不妨礙例外。該異常被拋出,因爲當在monitoringmodel.jar
就目前而言,我不得不simply add找到MonitoringModel.parse()電話Helpers.listToString()後者是無處(請參見複製粘貼)HelpersMonitoringModel

+0

這有什麼更新? –

+0

@ MLProgrammer-CiM:不幸的是 - 但我仍然對答案感興趣。隨意放置賞金:D –

+0

我將構建過程轉移到maven,並似乎做了伎倆。 –

回答

0

你必須獨立編譯你的助手Java項目,並導出一個JAR像一個普通的Java JAR

然後,你必須添加這個JAR監視的Android庫libs文件夾。

現在,您可以將Monitor Android庫添加到其他項目(從Android庫文件夾中),並且它將包含您需要的源代碼。

問題是由於某些ADT版本,項目選項卡不再編譯引用的項目,所以它沒用。

+0

感謝您的回答,但請仔細閱讀 - 儘管我最初使用了項目選項卡,但我切換到了庫選項卡 - 最重要的是:我想在一個非Android項目中使用MonitoringModel - 這是可能的,正如我在問題中所說的(再次鏈接)[這裏](http://stackoverflow.com/a/18594605/281545)。我對此非常感興趣 - 也許在android開發組的帖子是爲了。 –

+0

也請提供更詳細的說明關於幫助者項目 - 最好是一些自動化的方式(螞蟻?)。 –

相關問題