android工程中不自動生成Android Dependencies的解決方式

http://blog.csdn.net/encienqi/article/details/7847858

今天遇到的奇怪問題是網上下載的demo導入第三方包運行後Android: NoClassDefFoundError的錯誤,原因是第三方的jar包並沒有打包進apk裏,運行是肯定要出錯的。

網 上百度了N久,都是說先移除之前的Libraries,再將lib更名爲libs的做法。今天是遇到邪門了,照做還是運行報錯。後來發現直接add的 jar包還是放在Referenced Libraries裏,ADT升級到17後就出現了Android Dependencies,但這是自動生成的。將名字改來改去工程刪來刪去也還是無濟於事,不能把jar包導入Android Dependencies裏apk裏也不會打包進去。

糾 結啊.....後來打開了工程下的.classpath的文件,對比那些正常的工程,終於發現在裏面加一句話<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>就可以解決,Refresh一下,順便clean 一下,OK,完成!
 

從ADT16開始,Android項目中多了一個名爲“Android Dependencies” 的庫應用文件夾,這是ADT的第三方庫新的引用方式。

當你需要引用第三方庫時,只需在項目中新建一個名爲"libs"的文件夾,然後將所有第三方包拷貝到該目錄下。當eclipse啓動時,ADT就會自動幫你完成庫的引用,而不需要像以前一樣自己Build Path,也不再需要Referenced Libraries了。

 
新版本的ADT修改了第三方jar的導入方式,之前可以在工程裏面做關聯,會在工程上自動添加ReferenceLibrary。
在新版本的ADT環境下,只需要在工程目錄下新建libs文件夾,注意是libs不是lib,然後將第三方的jar複製進去,eclipse會自動將這個jar添加到Android Dependencies文件夾下,不必在通過BuildPath自己去修改了,也不需要ReferenceLibrary了。
另外,如果多個工程有關聯的話,比如A工程設置爲IsLibaray,B工程要引入A工程的時候,也會自動將A工程編譯生成的jar放到Android Dependencies文件夾下。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章