library - import aar android studio
Agregar archivos locales.aar a la creación de Gradle con "flatDirs" no funciona (9)
¡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
Soy consciente de esta pregunta: Agregar archivos .aar locales a mi compilación de gradle, pero la solución no me funciona.
Traté de agregar esta declaración 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
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.
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
Entonces, el otro cambia:
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
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 fuentes dentro del proyecto.
Crédito a Facebook por este truco. Encontré la solución al integrar el Android SDK en un proyecto.
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.)
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 ...
MyApplication .idea app build.gradle (here''s where to add compile project('':ProjectName'') to dependency section) ProjectName (added automatically after importing, matching the name of your aar file) build 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 issue se ha solucionado a partir del lanzamiento de Android Studio v1.3.
Probado y verificado con las especificaciones a continuación
- Android Studio v1.3
- Gradle plugin v1.2.3
- Gradle v2.4
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 issue 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 compilació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'')