Cómo incluir manualmente el paquete aar externo usando Gradle para Android

Resuelto Miguel asked hace 54 años • 26 respuestas

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

Miguel avatar Jan 01 '70 08:01 Miguel
Aceptado

Siga los pasos a continuación para que funcione (lo probé hasta Android Studio 2.2).

Digamos que tiene un .aararchivo en libsuna carpeta (por ejemplo cards.aar).

Luego, en la aplicación, build.gradleespecifique lo siguiente y haga clic en Sincronizar proyecto con archivos Gradle .

Abra el nivel de Proyecto build.gradley agregue flatDir {dirs("libs")}como se muestra a continuación:

allprojects {
    repositories {
        jcenter()

        flatDir {
            dirs("libs")
        }
    }
}

Abra build.gradleel archivo de nivel de aplicación y agregue .aarel archivo:

dependencies {
    implementation(name:'cards', ext:'aar')
}

Si está utilizando Kotlin y tiene un build.gradle.ktsarchivo:

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 .aararchivo de otro proyecto que tiene dependencias, también deberá incluirlas en su archivo build.gradle.

Vipul avatar Apr 27 '2014 17:04 Vipul
  1. Haga clic derecho en su proyecto y seleccione "Abrir configuración del módulo" .

Abrir configuración del módulo

  1. Haga clic en el botón "+" en la esquina superior izquierda de la ventana para agregar un nuevo módulo.

Agregar nuevo módulo

  1. Seleccione "Importar paquete .JAR o .AAR" y haga clic en el botón "Siguiente" .

Importar AAR

  1. Busque el archivo AAR usando el botón de puntos suspensivos "..." al lado del campo "Nombre de archivo".

Encuentra el archivo AAR

  1. Mantenga seleccionado el módulo de la aplicación y haga clic en el panel Dependencias para agregar el nuevo módulo como dependencia.

Panel de dependencias

  1. Utilice el botón "+" de la pantalla de dependencias y seleccione "Dependencia del módulo" .

Agregar dependencia del módulo

  1. Seleccione el módulo y haga clic en "Aceptar" .

Elige módulo

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

Oliver Kranz avatar Jan 21 '2016 09:01 Oliver Kranz

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.

Ran Wakshlak avatar Jan 30 '2014 08:01 Ran Wakshlak

antes (predeterminado)

implementation fileTree(include: ['*.jar'], dir: 'libs')

simplemente agregue '*.aar'la includematriz.

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')
Hun avatar Apr 05 '2018 02:04 Hun

El siguiente enfoque funciona con Android Studio v0.8.x:

  • Guarde el aararchivo en libsla 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 clicTools -> Android -> Sync Project with Gradle Files

ashoke avatar Oct 07 '2014 03:10 ashoke