Cómo incluir manualmente el paquete aar externo usando Gradle para Android
He estado experimentando con el nuevo sistema de compilación de Android y me encontré con un pequeño problema. He compilado mi propio paquete aar de ActionBarSherlock al que llamé 'actionbarsherlock.aar'. Lo que estoy tratando de hacer es usar este aar para crear mi APK final. Si incluyo toda la biblioteca ActionBarSherlock como un módulo de biblioteca de Android en mi proyecto principal usando el proyecto de compilación (':actionbarsherlock'), puedo compilar con éxito sin ningún problema.
Pero mi problema es que quiero proporcionar esa dependencia como un paquete de archivos aar MANUALMENTE, solo que si usara un JAR, entonces parece que no puedo entender cómo incluirlo correctamente en mi proyecto. Intenté utilizar la configuración de compilación pero no parece funcionar. Sigo recibiendo el símbolo "No puedo encontrar" durante la compilación, lo que me dice que el archivo clases.jar del paquete aar no se incluye en el classpath.
¿Alguien conoce la sintaxis para incluir manualmente un paquete aar como archivo?
construir.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile files('libs/actionbarsherlock.aar')
}
android {
compileSdkVersion 15
buildToolsVersion "17.0"
}
EDITAR: Entonces la respuesta es que actualmente no es compatible, aquí está el problema si desea realizar un seguimiento.
EDITAR: Actualmente, como esto todavía no es compatible directamente, la mejor alternativa parece ser la solución propuesta por @RanWakshlak
EDITAR: También es más sencillo al utilizar la sintaxis propuesta por @VipulShah
Siga los pasos a continuación para que funcione (lo probé hasta Android Studio 2.2).
Digamos que tiene un .aar
archivo en libs
una carpeta (por ejemplo cards.aar
).
Luego, en la aplicación, build.gradle
especifique lo siguiente y haga clic en Sincronizar proyecto con archivos Gradle .
Abra el nivel de Proyecto build.gradle
y agregue flatDir {dirs("libs")}
como se muestra a continuación:
allprojects {
repositories {
jcenter()
flatDir {
dirs("libs")
}
}
}
Abra build.gradle
el archivo de nivel de aplicación y agregue .aar
el archivo:
dependencies {
implementation(name:'cards', ext:'aar')
}
Si está utilizando Kotlin y tiene un build.gradle.kts
archivo:
dependencies {
implementation(name = "cards", ext = "aar")
}
Si todo va bien, verá que la entrada a la biblioteca se realiza en build
-> exploded-aar.
También tenga en cuenta que si está importando un .aar
archivo de otro proyecto que tiene dependencias, también deberá incluirlas en su archivo build.gradle
.
- Haga clic derecho en su proyecto y seleccione "Abrir configuración del módulo" .
- Haga clic en el botón "+" en la esquina superior izquierda de la ventana para agregar un nuevo módulo.
- Seleccione "Importar paquete .JAR o .AAR" y haga clic en el botón "Siguiente" .
- Busque el archivo AAR usando el botón de puntos suspensivos "..." al lado del campo "Nombre de archivo".
- Mantenga seleccionado el módulo de la aplicación y haga clic en el panel Dependencias para agregar el nuevo módulo como dependencia.
- Utilice el botón "+" de la pantalla de dependencias y seleccione "Dependencia del módulo" .
- Seleccione el módulo y haga clic en "Aceptar" .
EDITAR: La dependencia del módulo en la captura de pantalla 6 se eliminó en Android Studio 4.1. Como alternativa, agregue la dependencia del módulo a build.gradle .
dependencies {
implementation project(':your_module')
}
EDITAR: La interfaz de usuario y el flujo de trabajo han cambiado mucho en Android Studio 4.2. El proceso para agregar una dependencia está muy bien explicado en una documentación oficial ahora: Agregar dependencias con el cuadro de diálogo Estructura del proyecto
Puede hacer referencia a un archivo aar desde un repositorio. Un maven es una opción, pero hay una solución más sencilla: coloque el archivo aar en su directorio libs y agregue un repositorio de directorio.
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
Luego haga referencia a la biblioteca en la sección de dependencia:
dependencies {
implementation 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}
Puedes consultar la publicación del blog de Min'an para obtener más información.
antes (predeterminado)
implementation fileTree(include: ['*.jar'], dir: 'libs')
simplemente agregue '*.aar'
la include
matriz.
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
Funciona bien en Android Studio 3.x.
si quieres ignorar alguna biblioteca? hazlo así.
implementation fileTree(include: ['*.jar', '*.aar'], exclude: 'test_aar*', dir: 'libs')
debugImplementation files('libs/test_aar-debug.aar')
releaseImplementation files('libs/test_aar-release.aar')
El siguiente enfoque funciona con Android Studio v0.8.x:
Guarde el
aar
archivo enlibs
la carpeta del módulo de la aplicación (por ejemplo<project>/<app>/libs/myaar.aar
:)Agregue lo siguiente a build.gradle de la carpeta del módulo "aplicación" (no a la raíz del proyecto build.gradle). Tenga en cuenta el nombre en la línea de compilación, es myaar@aar, no myaar.aar.
dependencies { compile 'package.name.of.your.aar:myaar@aar' } repositories{ flatDir{ dirs 'libs' } }
Hacer clic
Tools -> Android -> Sync Project with Gradle Files