2012-11-27 4 views
10

Quindi ho notato abbastanza recentemente una cartella all'interno del mio progetto Phonegap/Android (progetto/bin/dexedLibs) e questa cartella contiene due file .jar. Dopo aver graffiato su Internet, ho trovato un sito web in cui l'autore afferma che la versione 21 di ADT mette "Libs pre-dex" nel progetto per consentire tempi di compilazione più rapidi.cartella dexedLibs nel progetto Android

Ho eseguito l'upgrade di recente all'AD 21 e mi chiedevo se qualcun altro può fornirmi ulteriori informazioni su cosa facciano realmente queste "Libme pre-dex"? Non sono stato in grado di trovare altre informazioni utili in rete.

risposta

10

Ho un progetto Android con circa 20 librerie esterne. Prima di ADT 21, ogni volta che ho cambiato il codice sorgente ci sono voluti anni per ricostruire l'app. Ora è abbastanza veloce!

Immagino che il motivo sia che, prima di ADT 21, ha compilato le librerie esterne in codice dex ogni volta che si preme il pulsante "Esegui" in eclissi. Ora compilerà il codice dex per le librerie esterne solo una volta (finché non cambiano) e userà le librerie di pre-compilazione per i successivi "Esegui".

Mi piace quella funzione!

+0

Grazie Jane: ciò conferma l'intenzione dell'autore quando ha affermato che questa funzione è utile per i tempi di "costruzione più veloce". – Boyds

5

Attenzione! Ho appena trascorso un'ora per scoprire perché ottengo l'eccezione:

Caused by: java.lang.NoSuchMethodError: 

Il motivo era perché ho cambiato la mia vaso lib al nuovo barattolo (lo stesso nome) con metodo di lavoro, e ADT 21 no preparare il nuovo in dexedLibs.

Quindi basta eliminare bin dir e Eclipse lo ricrea.

0

La domanda è di circa 2 anni ma ancora di interesse.

Per le persone che navigano qui in seguito: ho avuto solo problemi perché ho rinominato un progetto Cordova da my.name.a3e a my.name.A3E e quindi il processo di generazione si è interrotto. È venuto fuori che i file dex in ant-build non sono stati aggiornati (distinzione tra maiuscole e minuscole). Ha funzionato bene dopo aver eliminato la cartella ant-build, ma la compilazione ha richiesto più tempo per la prima volta.

Un file dex è un file eseguibile Dalvik, un codice byte compilato che può essere eseguito dalla macchina virtuale Dalvik. Dalvik è un componente principale di Android, ecco perché è lì.

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

Nota che progetto Eclipse pulita non rimuoverà librerie dexed.