2012-05-04 17 views
7

¿Cuál es el propósito del archivo dx.jar que veo en algunas de las versiones de Android SDK que he instalado con el administrador de Android SDK; el archivo aparece en tools/lib/dx.jar NO veo el archivo en las versiones anteriores android-8 y superiores. Sin embargo, Intellij IDEA da un error cuando intento construir un proyecto con android-8 y superior, diciendo que dx.jar no existe. ¿Lo que da?¿Qué es dx.jar en los SDK de Android?

Gracias, Tom

+5

dx.jar es parte del proceso de compilación, que se utiliza para convertir el bytecode de Java en bytecode de Dalvik. Nunca lo verá en directorios 'android-8' o similares, ya que forma parte de las herramientas, no es parte de un SDK de nivel API individual. – CommonsWare

+0

@CommonsWare, ¿cómo se puede saber que se usa para encubrir la clase java a dalvik bytecode? – hugemeow

+1

@hugemeow: Cuando ejecuta el comando ** 'dx' **, dice:" Convierta un conjunto de archivos de clase en un archivo dex, opcionalmente incrustado en un jar/zip ". – CommonsWare

Respuesta

3

Adicional a los comentarios de CommonsWare .

El dx.jar fue original ubicado anteriormente en android-sdk/platforms/android-X/tools/lib/ (especialmente en android-3 y android-4), y se movió a android-sdk/platform-tools/lib/ más tarde. Desafortunadamente, esto nunca se ha documentado en ninguna fuente oficial, probablemente porque es parte de las herramientas internas que Google no quiere que se moleste el desarrollador. echa un vistazo a this blog para ver el problema.

Como siempre y cuando siga Android installation guide y añadir android-sdk/herramientas/y android-sdk/plataforma de herramientas/a la variable de entorno PATH, que debe estar bien acceder a dx.jar, a menos que utilice un androide muy viejo Versión SDK (lo dudo)

pasado, como una referencia rápida, esta es la forma de comandos SDK suelen utilizar dx.jar a que dex código de bytes de Java con las bibliotecas jar externos:

[INFO] C: \ Archivos de programa \ Java \ jdk1. 6.0_21 \ jre \ bin \ java [-Xmx1024M, -jar, C: \ Archivos de programa \ Android \ android-sdk \ plataforma-herramientas \ lib \ dx.jar, --dex, --output = C: \ workspace \ miproyecto \ con \ classes.dex, C: \ workspace \ miproyecto \ \ classes objetivo, C: \ workspace \ myprojec \ libs \ common-lib.jar, ... ...]

0

Por alguna razón que hago ver varias versiones (archivos diferente tamaño) de dx y dx.jar en los distintos subdirectorios versión del SDK de Android. He estado administrando los SDK a través de Eclipse, que hace unos meses cambió en este aspecto (ahora con una ventana SDK Manager separada) - así que tal vez las cosas se estropearon de alguna manera en ese proceso de transición ...

+0

dx es solo un script de shell utilizado para ejecutar lib/dx.jar. – yorkw

3

Actualmente, dx.jar se ha movido a

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

Puede encontrar el código fuente de dx here.