Comment convertir AAR en JAR
Situation :
j'ai l'intention d'utiliser une bibliothèque Java et je n'ai qu'un fichier AAR d'un dépôt Maven mais j'ai besoin du fichier JAR .
histoire de Fond:
j'ai essayé de compiler une bibliothèque, mais sa structure Grade était instable. Alors j'ai demandé un fichier JAR compilé, et son un développeur m'a remis un fichier aar d'un dépôt Maven (le développeur n'a pas pu compiler son propre projet). La configuration de Gradle était un gâchis, elle dépendait de plusieurs bibliothèques et Gradle a fait quelques exceptions.
j'ai essayé de l'utiliser dans mon idée IDE, mais il ne pouvait pas le voir. Un projet de bibliothèque devrait pouvoir être compilé dans un fichier jar, droit?
Question :
Que dois-je faire pour convertir ce fichier AAR en fichier JAR?
7 réponses
le fichier AAR se compose d'un fichier JAR et de quelques fichiers de ressources (il s'agit essentiellement d'un fichier zip standard avec une extension de fichier personnalisé). Voici les étapes pour convertir:
- extraire le fichier AAR en utilisant l'extrait zip standard (renommer le fichier en *.zip pour rendre plus facile)
- trouver le classe.jar fichier dans les fichiers extraits
- renommez - le comme vous voulez et utilisez ce fichier jar dans votre projet
.aar est une archive zip standard, la même que celle utilisée dans .pot. Il suffit de changer l'extension et, en supposant qu'elle n'est pas corrompue ou quoi que ce soit, il devrait être très bien.
si vous en aviez besoin, vous pourriez l'extraire dans votre système de fichiers et le reconditionner en bocal.
1) Rename it to .jar
2) Extract: jar xf filename.jar
3) Repackage: jar cf output.jar input-file(s)
comme beaucoup d'autres personnes l'ont souligné, il suffit d'extraire le .pot de l' .le fichier aar ne coupe pas tout à fait, car des ressources peuvent manquer.
Voici les étapes qui ont fonctionné pour moi (dans le contexte D'Android, votre kilométrage peut varier si vous avez d'autres buts):
- renommer le .aar fichier .zip et l'extraire.
- le dossier extrait est un projet ADT que vous pouvez importer dans Eclipse avec quelques modifications mineures (voir ci-dessous)!
- dans le dossier extrait renommer le fichier contenu classes.jar à ce que vous voulez (dans cet exemple myProjectLib.jar) et le déplacer vers le dossier lib dans le dossier extrait.
- maintenant pour Qu'Eclipse l'accepte vous devez mettre deux fichiers dans le dossier racine extrait:
- .projet
- .classepath
- à faire cela, créer un nouveau Android mannequin projet dans Eclipse et de copier les fichiers, ou copier à partir d'un projet Android.
- ouvrir le .le fichier de projet et rechercher la balise de nom XML et remplacer le contenu de celui-ci avec myProjectLib (ou ce que vous avez appelé votre fichier jar ci-dessus) et enregistrer.
- maintenant dans Eclipse vous pouvez Fichier -> Nouveau -> Projet -> Projet Android à partir de la source existante.. et pointer vers le contenu du dossier extrait.
- après le clic droit d'importation sur le projet nouvellement créé, sélectionnez propriétés -> Android , et cochez est Bibliothèque .
- dans votre projet principal pour lequel vous voulez utiliser la bibliothèque, allez aussi à propriétés -> Android et ajoutez le nouveau myProjectLib ajouté à la liste des dépendances.
pour ceux, qui veulent le faire automatiquement, j'ai écrit un petit script bash de deux lignes qui fait ensuite deux choses:
- Regarde de tous *.dossiers et extraits de cours de l'aar.jar
-
renomme les classes extraites.jar pour être comme l'aar, mais avec une nouvelle extension
find . -name '*.aar' -exec sh -c 'unzip -d `dirname {}` {} classes.jar' \; find . -name '*.aar' -exec sh -c 'mv `dirname {}`/classes.jar `echo {} | sed s/aar/jar/g`' \;
C'est ça!
The 'aar' bundle is the binary distribution of an Android Library Project. .aar file
consists a JAR file and some resource files. You can convert it
as .jar file using this steps
1) Copy the .aar file in a separate folder and Rename the .aar file to .zip file using
any winrar or zip Extractor software.
2) Now you will get a .zip file. Right click on the .zip file and select "Extract files".
Will get a folder which contains "classes.jar, resource, manifest, R.java,
proguard(optional), libs(optional), assets(optional)".
3) Rename the classes.jar file as yourjarfilename.jar and use this in your project.
Remarque: Si vous souhaitez obtenir uniquement .le fichier jar de votre .aar fichier, utilisez l' ci-dessus. Supposons que vous vouliez inclure le manifeste.xml et des ressources avec votre .le fichier jar signifie vous pouvez simplement cliquez droit sur votre .aar fichier et l'enregistrer en tant que .fichier jar directement au lieu de enregistrer en tant que .zip. Pour afficher l' .fichier jar que vous avez extrait, téléchargez JD-GUI(Java Decompiler) . Alors faites glisser et déposez votre .fichier jar dans cette JD_GUI, vous pouvez voir le .fichier de classe dans des formats lisibles par comme une .fichier java.
basée sur les Ressources .AAR-projets
trouver les classes.fichier jar dans le .le dossier de l'aar est assez trivial. Cependant, cette approche ne fonctionne pas, si l' .aar-projet défini certaines ressources (exemple: R. layout.xyz)
-
donc deaar de CommonsGuy m'a aidé à obtenir un valide ADT-friendly projet de une .aar-fichier. dans mon cas j'ai converti sous-échantillonnage à l'échelle-image-view . Il m'a fallu une heure pour installer ruby sur mon PC.
-
une autre approche utilise android-maven-plugin pour Eclipse / ADT comme CommonsGuy écrit sur son blog .
-
encore une autre approche pourrait être, tout simplement le clonage de l'ensemble du projet souhaité comme source de git et l'importer comme "projet Android existant"
Android Studio (version: 1.3.2) vous permet d'accéder facilement à la .un bocal dans un .de l'aar.
Bonus: il décompose automatiquement les classes!
il suffit de suivre ces étapes:
-
File > New > New Module > Import .JAR/.AAR Package
pour t'importer .AAR en tant que module -
Ajouter le module nouvellement créé comme une dépendance à votre projet principal (pas sûr si nécessaire)
-
clic droit sur" classes.jar", comme indiqué dans la capture ci-dessous, et cliquez sur "Afficher dans l'explorateur". Ici est votre .pot.