2012-05-04 9 views
7

Qual è lo scopo del file dx.jar che vedo in alcune versioni di Android SDK che ho installato con il gestore di Android SDK; il file appare sotto tools/lib/dx.jar NON vedo il file nelle versioni sopra android-8 e superiori. Comunque Intellij IDEA dà un errore quando provo a costruire un progetto con android-8 e sopra, dicendo che dx.jar non esiste. Cosa dà?Che cos'è dx.jar negli SDK Android?

Grazie, Tom

+5

dx.jar è parte del processo di compilazione, utilizzato per convertire il bytecode Java nel bytecode Dalvik. Non lo vedrai mai in 'android-8' o in directory simili, dato che fa parte degli strumenti, non fa parte dell'SDK di un singolo livello API. – CommonsWare

+0

@CommonsWare come si fa a sapere che è usato per convertire la classe java in bytecode dalvik? – hugemeow

+1

@hugemeow: quando si esegue il comando ** 'dx' **, si dice:" Converti un set di classfile in un file dex, opzionalmente incorporato in un jar/zip ". – CommonsWare

risposta

3

Additional to CommonsWare's comment .

Il dx.jar era originale situato sotto android-sdk/platforms/android-X/tools/lib/ prima (specialmente in Android-3 e Android-4) e spostato in android-sdk/platform-tools/lib/ in seguito. Sfortunatamente questo non è mai stato documentato in nessuna fonte ufficiale, probabilmente perché fa parte degli strumenti interni che Google non vuole che lo sviluppatore del consumatore venga infastidito. controlla this blog per vedere il problema.

Finché si segue Android installation guide e si aggiunge android-sdk/tools/e android-sdk/platform-tools/alla variabile d'ambiente PATH, si dovrebbe andare bene a dx.jar, a meno che non si usi un Android molto vecchio Versione SDK (ne dubito).

scorso, come riferimento rapido, questo è il comando come SDK utilizzano in genere dx.jar a dex si bytecode Java con librerie jar esterni:

[INFO] C: \ Program Files \ Java \ jdk1. 6.0_21 \ jre \ bin \ java [-Xmx1024M, -jar, C: \ Programmi \ Android \ android-sdk \ platform-tools \ lib \ dx.jar, --dex, --output = C: \ workspace \ myproject \ obiettivo \ classes.dex, C: \ workspace \ myproject \ obiettivo \ classes, C: \ workspace \ myprojec \ libs \ common-lib.jar, ... ...]

0

Per qualche ragione per cui faccio vedere diverse versioni (file di dimensioni diverse) di dx e dx.jar nei vari Android sottodirectory di versione SDK. Avevo gestito gli SDK tramite Eclipse, che qualche mese fa è cambiato a questo proposito (ora con una finestra separata di SDK Manager), quindi forse le cose si sono in qualche modo rovinate in quel processo di transizione ...

+0

dx è solo uno script di shell usato per eseguire lib/dx.jar. – yorkw

3

Attualmente, dx.jar è stato spostato a

adt-bundle-*\sdk\build-tools\17.0.0\lib 

È possibile trovare il codice sorgente di dx here.