web-dev-qa-db-fra.com

Comment convertir un fichier .jar ou .class en fichier .dex?

Je vais éditer le serveur Opera Mini v6.5 car il est bloqué dans notre pays.

Maintenant, j'ai décompressé le fichier .apk extrait des classes.Dex puis je l'ai converti via dex2jar.bat, maintenant modifié le serveur.

Mon problème est que je veux reconditionner le .jar ou .class à classes.Dex. Comment fait-on ça?

17
Sadra Naddaf

Voici une solution qui m'a été utile dans mon cas ... 

Supposons que le fichier .jar se trouve dans "c:\temp\in.jar". Dans la fenêtre Invite de commande, cd pour ..\Android-sdk\platform-tools . 

dx --dex --output="c:\temp\app.apk" "c:\temp\in.jar"

Pour obtenir le fichier .dex, exécutez:

dx --dex --output="c:\temp\dx.dex" "c:\temp\in.jar"
29
Pavel Netesa

Pour mac, l'outil de commande dx est stocké dans un répertoire différent, comme indiqué dans la réponse du haut. Voici comment vous le faites dans mac:

   exampleName$ /Users/exampleName/Library/Android/sdk/build-tools/25.0.2/dx --dex --output="/Users/exampleName/Downloads/classes-dex2jar.jar" "/Users/exampleName/Downloads/name.dex"

Explication plus détaillée:

  • L'outil dx est stocké dans le SDK Android, mais dans un répertoire différent sur macs, le chemin d'accès à un mac est /Users/exampleName/Library/Android/sdk/build-tools/25.0.2/.
  • La commande est la même pour Windows et Mac, le chemin est juste différent
  • La commande pour les deux plates-formes est dx --dex--output="c:\temp\app.apk" "c:\temp\in.jar"
  • L'outil peut prendre quelques minutes pour produire le fichier dex

Si cela ne fonctionne toujours pas pour une raison quelconque, assurez-vous de respecter les exigences suivantes:

 enter image description here

Je sais que c'est tard, mais je devais le résoudre moi-même après des heures d'essais et d'erreurs. J'espère que cela aidera un autre utilisateur de Mac. 

1
Ruchir Baronia

On dirait que vous avez besoin de apktool , il vous permet de remballer et de démissionner un apk, sans avoir à vous lancer dans l'exécution de dx et à vous en approprier. 

Voici un article sur la façon de décompresser et de remballer

0
scottyab

Pour éviter de télécharger l'intégralité d'Android Studio: Vous pouvez aller à command-tools download et extraire le dossier. Puis allez dedans et trouvez votre outil sdkmanager. Ensuite, sur votre ligne de commande, tapez sdkmanager "build-tools;28.0.1". Vous pouvez sélectionner la version de build-tools appropriée en fonction de la version de Java avec laquelle vous travaillez. Cela le téléchargera dans le répertoire racine de vos outils de ligne de commande. Allez dans ce dossier et vous devriez voir l'outil dx. Ensuite, vous pouvez taper dx --dex --output="nameoffile.dex" nameoffile.jar.

Remarque supplémentaire: si vous essayez de convertir un grand pot, vous risquez une erreur OUT OF MEMORY. Dans ce cas, il vous suffit de transmettre à la machine virtuelle Java l’option d’augmentation du tas dx -JXmx256m ....

0
annoying_squid

Pour déxifier un fichier jar, vous utiliseriez dx.bat dans le dossier platform-tools de votre sdk. Vous pouvez également consulter la tâche -dex dans le fichier build.xml du dossier tools\ant de votre SDK.

0
Justin Breitfeller