將工程作爲library供其他工程調用及如何調用和過程中的問題解決

在項目開發的時候通常會用到一些通用的或者相對獨立的功能,如下拉刷新列表、掃碼等功能,很多人會將這些代碼放在要用這些功能的工程中,使得整個工程變得巨大,並且如果多個工程都要使用到這些功能的話,就要每個工程都有一份相同或者類似的代碼。因此我們通常有兩種做法,一種是將這些功能的代碼封裝成jar包,然後將其複製到要用的工程中的libs目錄即可。還有一種方式,也就是本文所介紹的方式,將這些功能單獨建立一個工程,並將工程設置爲library,然後在要用到的工程中Add進去即可。

一、將工程作爲library供其他工程調用

只需在project .properties文件target=android-x的後面加上一句android.library=true然後重新clean一下即可。

clean後有可能會出現錯誤,點開看應該是有用到switch的地方出錯了,這是sdk版本的問題,只需將switch改爲if else即可。

二、如何引用外部工程

1.在需要引用外部工程的工程根目錄右擊,選擇Properties打開,在Properties窗口的左側找到Android並點擊,可以看到右側的下方就是添加library的地方。

2.點擊Add按鈕出現Project Selection窗口,在此窗口中會出現工作平臺中被編譯成library的項目,選中需要引用的工程點擊OK按鈕,回到Properties窗口,在右側的下方就能看到剛剛Add進去的工程,如果前方是打鉤的就表示引用是沒問題的。如果前方是打叉的,應該是被引用的項目換了目錄,只要選中那個打叉的library,然後點擊Remove按鈕將其移除,然後重新Add一次就行了。

網上很多資料說被引用的外部工程需要和需要引用的工程放在同一個目錄纔行,但本人有引用過不在同一目錄的工程,並且也沒有問題。


引用了外部工程後,如果clean時出現錯誤,在Console中的錯誤提醒是Unable to execute dex: Multiple dex files define…… 這是由於工程中包含多個同一個庫(具體庫名看Multiple dex files define後面的提醒),這時我們引用了外部工程,所以這兩個工程中不能包含相同的外部庫,只要將其刪掉一個,再clean就沒有問題了。


注意:引用的工程和被引用的工程不能包含相同的庫,當然不包括android.jar(android SDK)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章