¿Por qué convertir CLASS a DEX?
DEX (Dalvik Executable) es el formato de bytecode de Android para el entorno de ejecución ART, mientras que los archivos .class son bytecode de JVM para Java de escritorio; los dos conjuntos de instrucciones son diferentes y no intercambiables. Una aplicación de Android ejecutable requiere un APK con un manifiesto, recursos y referencias al framework de Android que un archivo .class independiente no proporciona.
Cómo convertir CLASS a DEX
Android Studio FREE
Inicie un proyecto de Android, añada su código fuente Java (archivos .java) al proyecto y compile - el plugin de Gradle para Android compila el código fuente y ejecuta d8 automáticamente para producir un APK válido.
JD-GUI OPEN-SOURCE
Si solo tiene archivos .class, descompílelos primero a .java usando File > Save All Sources en JD-GUI, luego añada ese código fuente a un proyecto de Android Studio y compile.
Acerca de estos formatos
Un archivo CLASS es bytecode de Java compilado: el resultado que produce javac a partir de un archivo fuente .java. Para ejecutarlo necesitas tener instalado Java (un JDK), y luego usar el…
Abrir detalles de .CLASS →Un archivo DEX es código de aplicación de Android compilado: el Dalvik Executable que ejecuta el entorno de ejecución de Android (ART). Normalmente reside dentro de un APK como classes.dex,…
Abrir detalles de .DEX →Calidad y qué observar
- Los archivos
.classson bytecode de JVM para la Máquina Virtual Java de escritorio; DEX es un conjunto de instrucciones diferente para el entorno ART de Android - los dos no son intercambiables. d8 MyClass.classse ejecuta sin errores, pero la salida DEX carece de una estructura de APK, manifiesto y referencias al framework de Android, y no se puede instalar en Android.- Android Studio acepta archivos JAR estándar como dependencias - el sistema de compilación gestiona cualquier paso de class-a-DEX automáticamente al crear el APK.
Preguntas frecuentes
¿Puedo usar d8 directamente para convertir un .class a DEX?
¿Existe alguna herramienta en línea que convierta CLASS a DEX?
Tengo un JAR, no un .class - ¿cambia eso algo?
.class; una aplicación de Android ejecutable sigue requiriendo una compilación completa en Android Studio.