Por que converter CLASS para DEX?
DEX (Dalvik Executable) é o formato de bytecode do Android para o tempo de execução ART, enquanto arquivos .class são bytecode JVM para Java de desktop - os dois conjuntos de instruções são diferentes e não intercambiáveis. Um aplicativo Android executável requer um APK com um manifesto, recursos e referências de framework do Android que um arquivo .class independente não fornece.
Como converter CLASS para DEX
Android Studio FREE
Inicie um projeto Android, adicione seu código-fonte Java (arquivos .java) ao projeto e compile - o plugin Android Gradle compila o código-fonte e executa o d8 automaticamente para produzir um APK válido.
JD-GUI OPEN-SOURCE
Se você tiver apenas arquivos .class, descompile-os para .java primeiro usando File > Save All Sources do JD-GUI, depois adicione esse código-fonte a um projeto do Android Studio e compile.
Sobre estes formatos
Um arquivo CLASS é um bytecode Java compilado - o resultado que o javac produz a partir de um arquivo fonte .java. Para executá-lo, você precisa do Java (um JDK) instalado e usar o comando…
Abrir detalhes de .CLASS →Um arquivo DEX é o código compilado de um aplicativo Android - o Dalvik Executable que o ambiente de execução do Android (ART) executa. Ele normalmente reside dentro de um APK como…
Abrir detalhes de .DEX →Qualidade e o que observar
- Arquivos
.classsão bytecode JVM para a Java Virtual Machine de desktop; DEX é um conjunto de instruções diferente para o tempo de execução ART do Android - os dois não são intercambiáveis. d8 MyClass.classé executado sem erros, mas a saída DEX carece de uma estrutura de APK, manifesto e referências de framework do Android, não podendo ser instalada no Android.- O Android Studio aceita arquivos JAR padrão como dependências - o sistema de compilação lida com qualquer etapa class-to-DEX automaticamente ao construir o APK.
Perguntas frequentes
Posso usar o d8 diretamente para converter um .class para DEX?
Existe alguma ferramenta online que converta CLASS para DEX?
Eu tenho um JAR, não um .class - isso muda alguma coisa?
.class; um aplicativo Android executável ainda requer uma compilação completa no Android Studio.