Soy consciente de esta pregunta: Agregar archivos .aar locales a mi comstackción de gradle, pero la solución no me funciona.
Traté de agregar esta statement al nivel superior de mi archivo build.gradle
:
repositories { mavenCentral() flatDir { dirs 'libs' } }
También puse el archivo slidingmenu.aar
en /libs
y lo slidingmenu.aar
referencia en la sección de dependencies
: compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'
pero no funcionó en absoluto.
Intenté compile files('libs/slidingmenu.aar')
también pero sin suerte.
¿Qué me estoy perdiendo? ¿Algunas ideas?
PS Android Studio 0.8.2
Sobre la base de la respuesta de Josiah, aquí es cómo lo hice funcionar.
Siga sus instrucciones (en edición) ( Archivo -> Nuevo-> Nuevo módulo -> Importar .JAR / .AR ) e importe su .AR.
Luego, en su proyecto build.gradle (no en el nivel superior uno, el que está bajo ‘app’) agregue lo siguiente (en la sección de dependencias):
dependencies { compile project(':Name-Of-Your-Project') }
Nota: Name-Of-Your-Project debe coincidir con el nombre de la carpeta que se agregó después de importar el archivo AAR (en el mismo nivel que la app/.idea
en la carpeta de nivel más alto). O para decirlo de otra manera …
Mi aplicación .idea aplicación build.gradle (aquí es donde agregar el proyecto de comstackción (': ProjectName') a la sección de dependencia) ProjectName (agregado automáticamente después de la importación, haciendo coincidir el nombre de su archivo aar) construir gradle etc
Esto funcionó para mí con Android Studio 0.8.0. No olvide sincronizar gradle (utilizando el botón de la barra de herramientas o en Archivo-> Sincronizar ) después de hacer esto.
(Gracias a Josiah por ponerme en la dirección correcta)
(Nota: antes de esto traté de agregarlo a la carpeta libs, tratando de manipular el build.gradle
nivel build.gradle
y el build.gradle
nivel de aplicación, pero nada de eso funcionó para mis archivos aars – jar’s funcionará bien, pero no los archivos aar)
Actualización : As @ amram99 mencionado, el problema se ha solucionado a partir del lanzamiento de Android Studio v1.3.
Probado y verificado con las especificaciones a continuación
Lo que funciona ahora
Ahora puede importar un archivo aar local a través de la opción Archivo> Nuevo> Nuevo módulo> Importar .JAR / .AAR en Android Studio v1.3
Sin embargo, la respuesta a continuación es válida y efectiva, independientemente de los cambios de Android Studio, ya que está basada en scripting gradle.
Respuesta anterior: en una actualización reciente, las personas de Android rompieron la inclusión de archivos aar locales a través de la opción del menú agregar módulo nuevo de Android Studio. Verifique el problema que se encuentra aquí. Independientemente de cualquier cosa que entre y salga de la lista de características de IDE, el siguiente método funciona cuando se trata de trabajar con archivos aar locales. (Probado hoy):
Coloque el archivo aar en el directorio libs (créelo si es necesario) y luego agregue el siguiente código en su build.gradle:
dependencies { compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar') } repositories{ flatDir{ dirs 'libs' } }
Editar: La forma correcta (actualmente) de usar un archivo AAR local como dependencia de comstackción es usar el asistente de importación de módulos (Archivo | Nuevo Módulo | Importar .JAR o .AAR) que automáticamente agregará .aar como un módulo de biblioteca en tu proyecto
Vieja respuesta
Prueba esto:
allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } ... compile(name:'slidingmenu', ext:'aar')
Lo tengo trabajando en Android Studio 2.1. Tengo un módulo llamado “Native_Ads” que se comparte en varios proyectos.
Primero, creé un directorio en mi módulo Native_ads con el nombre ‘aars’ y luego coloqué el archivo aar ahí.
Estructura de directorios:
libs/ aars/ <-- newly created src/ build.gradle etc
Archivo Gradle de nivel superior:
allprojects { repositories { jcenter() // For module with aar file in it flatDir { dirs project(':Native_Ads').file('aars') } } }
Archivo build.gradle del módulo de aplicación: - sin cambios
Archivo Settings.gradle (para incluir el módulo):
include ':app' include 'Native_Ads' project(':Native_Ads').projectDir = new File(rootProject.projectDir, '../path/to/Native_Ads')
Archivo Gradle para el módulo Native_Ads:
repositories { jcenter() flatDir { dirs 'aars' } } dependencies { compile(name:'aar_file_name_without_aar_extension', ext:'aar') }
Eso es. Limpiar y construir
La forma más fácil ahora es agregarlo como un módulo
Esto creará un nuevo módulo que contiene el archivo aar, por lo que solo tiene que incluir ese módulo como una dependencia después
Puedes hacerlo de esta manera. Necesita ir en el formato maven:
repositories { maven { url uri('folderName')} }
Y luego su AAR necesita ir en una estructura de carpetas para una identificación de grupo “com.example”:
folderName/ com/ example/ verion/ myaar-version.aar
Luego referencia como una dependencia:
compile 'com.example:myaar:version@aar'
Donde la version
es la versión de su archivo aar (es decir, 3.0, etc.)
Para cualquiera que tenga este problema desde Android Studio 1.4, lo tengo que trabajar creando un módulo dentro del proyecto que contenga 2 cosas.
build.gradle con los siguientes contenidos:
configurations.create("default")
artifacts.add("default", file('facebook-android-sdk-4.7.0.aar'))
el archivo aar (en este ejemplo ‘facebook-android-sdk-4.7.0.aar’)
Luego incluya la nueva biblioteca como una dependencia del módulo. Ahora puede usar un aar construido sin incluir las fonts dentro del proyecto.
Crédito a Facebook por este truco. Encontré la solución al integrar el Android SDK en un proyecto.
¡En mi caso, ninguna de las respuestas anteriores funcionó! ya que tenía diferentes productFlavors solo añadiendo repositories{ flatDir{ dirs 'libs' } }
¡no funcionó! Terminé especificando la ubicación exacta del directorio libs :
repositories{ flatDir{ dirs 'src/main/libs' }
}
Supongo que uno debería introducir flatDirs así cuando hay diferentes productosFlavors en build.gradle
Esta es mi estructura, y cómo resuelvo esto:
MyProject / app / libs / mylib-1.0.0.aar
MyProject / app / myModulesFolder / myLibXYZ
En build.gradle
de Project / app / myModulesFolder / myLibXYZ
He puesto esto:
repositories { flatDir { dirs 'libs', '../../libs' } } compile (name: 'mylib-1.0.0', ext: 'aar')
Hecho y funcionando bien, mi submódulo XYZ depende de somelibrary del módulo principal.