2011-02-28 69 views
0

我需要在兩個Android項目(Eclipse Helios 3.6.1)中使用Java源文件。源文件(讓我們將其命名爲「庫」)包含一個公用類和公用類,它不使用任何資源。我將庫文件放在兩個項目的獨立目錄中。在Android項目中使用鏈接源

要將庫包含在每個項目中,我將包含該庫的文件夾添加到項目屬性\ Java Build Path \ Source \ Link Source。該庫被添加到項目樹中,但編譯器迫使我從庫中刪除「包」聲明,這對我來說是合適的。

問題是我不知道如何從項目源中引用庫。應該使用哪個命名空間?什麼應該放在「進口」條款中?我搜索了很多,但沒有發現任何有用的信息(可能是我在搜索中使用了錯誤的關鍵詞)。

圖書館摘錄(沒有 「包裝」 條款開頭!):

public class Misc { 
    public static void myRoutine() { 
    } 
} 

一個項目代碼(沒有 「進口」 條款):

public class MyActivity extends Activity { 
    public onEvent() { 
     myRoutine(); 
     Misc.myRoutine(); 
    } 
} 

編譯器不允許我使用myRoutine()或Misc.myRoutine()。有沒有解決方法?

回答

2

最簡單也最好的方法是在Eclipse中設置要作爲library project重用的類,然後在屬性中的Android選項卡的項目中添加對其的引用。

+0

謝謝你的回答。藉助一個庫項目,我需要使從派生的類庫成爲活動。另外,我需要在清單中聲明活動(然後將兩個apk部署在一起?)。這聽起來是一個很大的開銷......但是,似乎,我需要按照你的答案。 – borisstr 2011-02-28 19:26:22

+0

不,你可以創建一個不擴展任何東西的簡單類。無需擴展活動或將任何內容放入清單中。 – 2011-02-28 19:45:59

+0

真的嗎?編譯器不報告任何錯誤,但是我在運行時收到java.lang.NoClassDefFoundError異常。我必須再次檢查我的代碼。感謝提示。 – borisstr 2011-02-28 19:56:48

0

首先,你不應該刪除包聲明。其次,你應該能夠將這個類編譯成一個jar,並按照你上面提到的方式添加它。除此之外的其他一切應該能夠在Eclipse中爲此創建一個單獨的項目,並使這個新的庫項目成爲您主項目的依賴項。嘗試這些選項,然後它應該工作。

+0

我不能離開包裝聲明。編譯器說'聲明的程序包blablabla與預期的程序包不匹配「」。據我所知,使用jar會迫使我在每次更改庫源時手動維護jar更新。我會嘗試使用一個庫項目,雖然它有點過於複雜。謝謝。 – borisstr 2011-02-28 19:43:28