開發(fā)時通常都會有多個項目間代碼復(fù)用的需求,這時通常的做法是設(shè)置項目依賴,讓一個項目引用另一個項目,比如在Visual Studio中這樣就很容易實現(xiàn)。
而在Eclipse中的Android項目里,如果要引用另一個項目,理論上應(yīng)該也使用類似的辦法:
這里是引用一個名為Core的項目。
這樣做下來,在編寫代碼時不會有問題,但是在模擬器中運(yùn)行時就會出現(xiàn)NoClassDefFoundError異常,原因是找不到引用項目中的類。
而通過此窗口中Libraries選項卡中的各種功能添加引用,通常得到的結(jié)果要么是編譯不通過,要么也是和上面一樣。
我在網(wǎng)上查了半天,看到很多人也都遇到此問題無解~
創(chuàng)建jar文件
看來Eclipse無法自動實現(xiàn)項目的整合,那么只能考慮先將公共項目輸出為jar,再由需要的項目進(jìn)行導(dǎo)入了。
由于我這里的公共項目并不是一個Android常規(guī)項目,我只希望它充當(dāng)一個公共的類庫,提供一些通用功能,因此我將此項目創(chuàng)建為一個普通的Java項目,然后再Libraries中去掉了Java-SE的引用,加入了Android.jar(這個請根據(jù)需要,從SDK中導(dǎo)入特定版本的Android.jar文件),然后執(zhí)行導(dǎo)出:
選擇JAR文件類型:
下一步,這里設(shè)置保存路徑:
下一步,再下一步,這里可以采用默認(rèn)設(shè)置生成manifest文件,也可以自行設(shè)置指定的文件:
完成之后就導(dǎo)出完畢了。
導(dǎo)入jar文件
現(xiàn)在需要在要用到的項目中導(dǎo)入先前導(dǎo)出的jar文件,只需在Build Path中通過Add External JARs…功能選取先前導(dǎo)出的jar文件即可: