Crear archivo aar en Android Studio

Me gustaría crear un archivo aar para mi biblioteca en Android Studio, me habría ido con una opción jar pero mi biblioteca tiene recursos.

¿Alguna idea de cómo crear un archivo aar desde una biblioteca?

Si su biblioteca está configurada como una biblioteca de Android (es decir, utiliza la instrucción apply plugin: 'com.android.library' en su archivo build.gradle), generará un archivo .aar cuando se haya creado. Aparecerá en el directorio build / outputs / aar / en el directorio de su módulo.

Puede elegir el tipo “Biblioteca Android” en Archivo> Nuevo módulo para crear una nueva biblioteca Android.

Recuperar archivo .aar exportado de comstackciones locales

Si tiene un módulo definido como proyecto de biblioteca android obtendrá archivos .aar para todos los estilos de construcción (depuración y liberación por defecto) en el directorio build/outputs/aar/ de ese proyecto.

 your-library-project |- build |- outputs |- aar |- appframework-debug.aar - appframework-release.aar 

Si estos archivos no existen, inicie una comstackción con

 gradlew assemble 

Detalles del proyecto de la biblioteca

Un proyecto de biblioteca tiene un archivo build.gradle que contiene el apply plugin: com.android.library . Para referencia de esta biblioteca empaquetada como un archivo .aar , deberá definir algunas propiedades, como paquete y versión.

Ejemplo de archivo build.gradle para la biblioteca (este ejemplo incluye ofuscación en la versión):

 apply plugin: 'com.android.library' android { compileSdkVersion 21 buildToolsVersion "21.1.0" defaultConfig { minSdkVersion 9 targetSdkVersion 21 versionCode 1 versionName "0.1.0" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } 

Referencia archivo .aar en su proyecto

En su proyecto de aplicación, puede soltar este archivo .aar en la carpeta libs y actualizar el archivo build.gradle para hacer referencia a esta biblioteca utilizando el siguiente ejemplo:

 apply plugin: 'com.android.application' repositories { mavenCentral() flatDir { dirs 'libs' //this way we can find the .aar file in libs folder } } android { compileSdkVersion 21 buildToolsVersion "21.0.0" defaultConfig { minSdkVersion 14 targetSdkVersion 20 versionCode 4 versionName "0.4.0" applicationId "yourdomain.yourpackage" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { minifyEnabled false } } } dependencies { compile 'be.hcpl.android.appframework:appframework:0.1.0@aar' } 

Las opciones alternativas para hacer referencia a los archivos de dependencia local en gradle se pueden encontrar en: http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project

Compartir dependencias usando maven

Si necesita compartir estos archivos .aar dentro de su organización, consulte maven. Puede encontrar una buena reseña sobre este tema en: https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive- library-aar-across

Acerca del formato de archivo .aar

Un archivo aar es solo un .zip con una extensión alternativa y contenido específico. Para más detalles, consulte este enlace sobre el formato aar .

al igual que el usuario hcpl dijo, pero si no quieres preocuparte por la versión de la biblioteca puedes hacer esto:

 dependencies { compile(name:'mylibrary', ext:'aar') } 

ya que es molesto tener que actualizar la versión cada vez. También hace que lo no preocupante sobre el espacio de nombre sea más fácil de esta manera.

btw @aar no tiene dependencia transitiva. necesita un parámetro para activarlo: dependencias transitorias no resueltas para la biblioteca aar usando gradle