2012-11-27 88 views
10

所以我最近注意到了Phonegap/Android項目(project/bin/dexedLibs)中的一個文件夾,該文件夾包含兩個.jar文件。在對互聯網搔癢之後,我發現一個網站,作者在其中說ADT版本21在項目中放置了「預先排好序的Libs」,以縮短構建時間。android項目中的dexedLibs文件夾

我最近升級到了ADT 21,只是想知道其他人能否給我更多關於這些「預先dexed Libs」的信息?我一直無法在網上找到任何其他有用的信息。

回答

10

我有一個約20個外部庫的Android項目。在ADT 21之前,每當我更改源代碼時,都會花費很長時間來重建應用程序。現在速度非常快!

我想是因爲,在ADT 21之前,每次點擊eclipse中的「運行」按鈕時,它都會將外部庫編譯爲dex代碼。現在它將只編譯一次外部庫的dex代碼(直到它們改變),併爲以後的「運行」使用預構建庫。

我喜歡那個功能!

+0

感謝簡 - 這證實了作者的意思,當他說這個功能有助於「更快建立」時間。 – Boyds

5

注意!我剛剛花了一個小時找出爲什麼我得到異常:

Caused by: java.lang.NoSuchMethodError: 

的原因是因爲我改變了我的lib罐子新的jar(同名)與工作方法,和ADT 21沒在dexedLibs中準備新的。

所以只需刪除bin目錄,Eclipse將重新創建它。

0

這個問題是關於2歲,但仍然感興趣。

對於稍後瀏覽的人:我剛剛遇到了麻煩,因爲我將科爾多瓦項目從my.name.a3e更名爲my.name.A3E,然後構建過程崩潰。發現ant build中的dexed文件沒有刷新(區分大小寫)。在我刪除ant-build文件夾後,它工作正常,但構建後第一次需要更長的時間。

dex文件是Dalvik EXecutable文件,可以由Dalvik虛擬機執行的一些編譯字節碼。 Dalvik是Android的核心組件,所以它就在那裏。

http://sourceforge.net/projects/dexer/ http://developer.android.com/reference/dalvik/system/DexFile.html http://fileinfo.com/extension/dex

需要注意的是Eclipse項目清理不會刪除dexed庫。

相關問題