java - settitle - Cómo convertir AAR a JAR
para que sirve settitle en java (7)
Situación:
Tengo la intención de usar una biblioteca Java y solo tengo un archivo AAR de un repositorio Maven, pero necesito el archivo JAR .
Historia de fondo:
Traté de compilar una biblioteca, pero su estructura de Gradle es inestable. Así que pedí su archivo jar compilado, y su desarrollador entregó un archivo aar de algún repositorio de Maven (el desarrollador no puede compilar su propio proyecto). El sistema de gradle era un desastre, dependía de múltiples bibliotecas y Gradle arrojó alguna excepción.
Traté de usarlo en mi IDEA, pero no puede verlo. Un proyecto de biblioteca debería poder compilarse en un archivo jar, ¿verdad?
Pregunta:
¿Qué debo hacer para convertir ese archivo AAR en archivo JAR?
.aar es un archivo zip estándar, el mismo que se usa en .jar. Simplemente cambie la extensión y, suponiendo que no esté corrupta o algo así, debería estar bien.
Si lo necesitara, podría extraerlo a su sistema de archivos y luego volverlo a empaquetar como un contenedor.
1) Rename it to .jar
2) Extract: jar xf filename.jar
3) Repackage: jar cf output.jar input-file(s)
Android Studio (versión: 1.3.2) le permite acceder sin problemas al archivo .jar dentro de .aar.
¡Bonificación: descompila automáticamente las clases!
Simplemente siga estos pasos:
File > New > New Module > Import .JAR/.AAR Package
para importarlo .aar como un móduloAgregue el módulo recién creado como una dependencia a su proyecto principal (no estoy seguro si es necesario)
Haga clic derecho en "classes.jar" como se muestra en la captura a continuación, y haga clic en "Mostrar en el explorador". Aquí está tu .jar.
Como muchas otras personas han señalado, simplemente extraer el .jar del archivo .aar no acaba de cortarlo ya que pueden faltar recursos.
Estos son los pasos que funcionaron para mí (contexto de Android, su millaje puede variar si tiene otros propósitos):
- Cambia el nombre del archivo .aar a .zip y extract.
- La carpeta extraída es un proyecto ADT que puede importar en Eclipse con algunas modificaciones menores (ver más abajo).
- En la carpeta extraída, cambie el nombre del archivo contenido classes.jar a lo que desee (en este ejemplo myProjectLib.jar) y muévalo a la carpeta lib dentro de la carpeta extraída.
- Ahora, para que Eclipse lo acepte, debe colocar dos archivos en la raíz de la carpeta extraída:
- .proyecto
- .classpath
- Para hacerlo, cree un nuevo proyecto ficticio de Android en Eclipse y copie los archivos, o copie desde un proyecto de Android existente.
- Abra el archivo .project y busque la etiqueta de nombre XML y reemplace su contenido con myProjectLib (o lo que usted llame su archivo jar anterior) y guárdelo.
- Ahora en Eclipse puede Archivar -> Nuevo -> Proyecto -> Proyecto Android desde una fuente existente ... y señalar el contenido de la carpeta extraída.
- Después de importar, haga clic con el botón derecho en el proyecto recién creado, seleccione Propiedades -> Android y marque Es Biblioteca .
- En su proyecto principal para el que desea usar la biblioteca, también vaya a Propiedades -> Android y agregue el myProjectLib recién agregado a la lista de dependencias.
El archivo AAR consta de un archivo JAR y algunos archivos de recursos (básicamente es un archivo zip estándar con una extensión de archivo personalizada). Aquí están los pasos para convertir:
- Extraiga el archivo AAR usando un extracto zip estándar (renómbrelo a * .zip para hacerlo más fácil)
- Encuentre el archivo classes.jar en los archivos extraídos
- Renombrelo como desee y use ese archivo jar en su proyecto
Para aquellos que quieran hacerlo automáticamente, he escrito un pequeño guión bash de dos líneas que hace las siguientes dos cosas:
- Busca todos los archivos * .aar y extrae classes.jar de ellos
Cambia el nombre de classes.jar para que sea como el aar pero con una nueva extensión
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`'' /;
¡Eso es!
Basado en recursos .aar-projects
Encontrar el archivo classes.jar dentro del archivo .aar es bastante trivial. Sin embargo, ese enfoque no funciona, si el proyecto .aar definió algunos recursos (ejemplo: R.layout.xyz)
Por deaar tanto, deaar de CommonsGuy me ayudó a obtener un proyecto válido para ADT de un archivo .aar. En mi caso, convertí subsampling-scale-image-view . Me llevó alrededor de una hora configurar Ruby en mi PC.
Otro enfoque es usar android-maven-plugin para Eclipse / ADT como lo describe CommonsGuy en su blog .
Otro enfoque más podría ser clonar todo el proyecto deseado como fuente de git e importarlo como "Proyecto de Android existente".
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.
Nota: Si desea obtener únicamente el archivo .jar de su archivo .aar, utilice el procedimiento anterior. Supongamos que si desea incluir el archivo manifest.xml y los recursos con su archivo .jar, puede hacer clic derecho en su archivo .aar y guardarlo como archivo .jar directamente en lugar de guardarlo como .zip. Para ver el archivo .jar que ha extraído, descargue JD-GUI (Java Decompiler) . Luego arrastre y suelte su archivo .jar en este JD_GUI, puede ver el archivo .class en formatos legibles como un archivo .java.