Situación :
Tengo la intención de usar una biblioteca de Java y solo tengo un archivo AAR de un repositorio de Maven, pero necesito el archivo JAR .
Historia de fondo:
Intenté compilar una biblioteca, pero su estructura de Gradle era inestable. Así que pedí un archivo jar compilado y su desarrollador me entregó un archivo aar de algún repositorio de Maven (el desarrollador no pudo compilar su propio proyecto). La configuración de Gradle fue un desastre, dependía de múltiples bibliotecas y Gradle ha arrojado algunas excepciones.
Traté de usarlo en mi IDEA IDE, pero no pude verlo. Un proyecto de biblioteca debería poder compilarse en un archivo jar, ¿verdad?
Pregunta :
¿Qué debo hacer para convertir ese archivo AAR en un archivo JAR?
Respuestas:
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). Estos son los pasos para convertir:
fuente
.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 ni nada, debería estar bien.
Si lo necesita, puede extraerlo a su sistema de archivos y luego volver a empaquetarlo como un frasco.
fuente
Como muchas otras personas han señalado, simplemente extraer el .jar del archivo .aar no es suficiente, 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):
fuente
Para aquellos que quieren hacerlo automáticamente, he escrito un pequeño script bash de dos líneas que hace las siguientes dos cosas:
Cambia el nombre de classes.jar extraído para que sea como el aar pero con una nueva extensión
¡Eso es!
fuente
aar=jar+res+manifest+libs
. Vamosrest=res+manifest+libs
, quejar(aar)=aar-rest
.Android Studio (versión: 1.3.2) le permite acceder sin problemas al .jar dentro de un .aar.
Bono: ¡descompila automáticamente las clases!
Simplemente siga estos pasos:
File > New > New Module > Import .JAR/.AAR Package
para importar tu .aar como 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á su .jar.
fuente
fuente
Proyectos .aar basados en recursos
Encontrar el archivo classes.jar dentro del archivo .aar es bastante trivial. Sin embargo, ese enfoque no funciona, si el .aar-project definió algunos recursos (ejemplo: R.layout.xyz)
Por lo tanto, deaar de CommonsGuy me ayudó a obtener un proyecto válido compatible con ADT de un archivo .aar. En mi caso, convertí subsampling-scale-image-view . Me tomó alrededor de una hora configurar Ruby en mi PC.
Otro enfoque es usar android-maven-plugin para Eclipse / ADT como escribe CommonsGuy en su blog .
Otro enfoque más podría ser simplemente clonar todo el proyecto deseado como fuente desde git e importarlo como "Proyecto de Android existente".
fuente
Si está utilizando Gradle para sus compilaciones, hay un complemento de Gradle que le permite agregar dependencia aar a sus módulos java | kotlin | scala | ....
https://github.com/stepango/aar2jar
fuente