Agregar archivos .aar locales a la generación de Gradle utilizando "flatDirs" no funciona
Soy consciente de esta pregunta: Agregar archivos .aar locales a mi compilación gradle pero la solución no funciona para mí.
He intentado agregar esta declaración al nivel superior de mi archivo build.gradle
:
- Tarea Gradle personalizada para guardar Json analizado en el archivo. Androide
- Error: (19, 0) Gradle DSL método no encontrado: 'android ()'
- Gradle genera para cada carpeta de recursos
- ¿Cómo puedo comprobar qué versión de plugin de Gradle Android se utiliza en mi proyecto?
- Módulo Gradle y submódulo git
repositories { mavenCentral() flatDir { dirs 'libs' } }
También he puesto el archivo slidingmenu.aar
en /libs
y lo he hecho referencia en la sección de dependencies
: compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'
pero no funcionó en absoluto.
Traté de compile files('libs/slidingmenu.aar')
, pero sin suerte.
¿Qué me estoy perdiendo? ¿Algunas ideas?
PS Android Studio 0.8.2
- Diferencia entre build.gradle (Project) y build.gradle (Module)
- Proyecto de actualización de Android-Studio con cambios de build.gradle
- Crear prueba Android apk utilizando el sistema de compilación gradle
- Android Studio gradle no compila la versión especificada
- Gradle excluir plugin en proyecto principal para subproyecto (s) específico (s)
- Cambiar la estructura del archivo de proyecto después de migrar de Eclipse a Android Studio gradle structure
- Android Studio - No se pudo fusionar el manifiesto de Gradle
- Establecer la versión de la aplicación de Android con Gradle
Sobre la base de la respuesta de Josías, he aquí cómo lo hice funcionar.
Siguiendo sus instrucciones (bajo editar) ( Archivo -> Nuevo-> Nuevo Módulo -> Importar .JAR / .AAR ) e importar su .AAR.
A continuación, en su proyecto build.gradle (no el de nivel superior, el de debajo de '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 (al mismo nivel que app/.idea
en la carpeta superior). O para decirlo de otra manera …
Mi aplicación .idea App Build.gradle (aquí es donde agregar el proyecto de compilación (': ProjectName') a la sección de dependencias) ProjectName (se agrega automáticamente después de importar, coincidiendo con el nombre de su archivo aar) construir Gradle Etc
Esto funcionó para mí con Android Studio 0.8.0. No olvide sincronizar gradle (usando el botón de la barra de herramientas o en File-> Synchronize ) después de hacer esto.
(Gracias a Josiah por conseguirme ir en la dirección correcta)
(Nota: antes de esto intenté agregarlo a la carpeta libs, tratando de manipular el nivel superior build.gradle
y el nivel de la aplicación build.gradle
, pero nada de eso funcionó para mis archivos aars – jar funcionará bien, pero no Los archivos aar)
Actualización : Como @ amram99 mencionado, el problema se ha fijado a partir de la publicación de Android Studio v1.3.
Probado y verificado con especificaciones abajo
- Android Studio v1.3
- Gradle plugin v1.2.3
- Gradle v2.4
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 Package en Android Studio v1.3
-
Sin embargo, la siguiente respuesta es válida y efectiva, independientemente de los cambios en Android Studio, ya que se basa en scripts gradle.
Respuesta Antigua: En una actualización reciente, la gente de android rompió la inclusión de archivos aar locales a través de la opción del menú del nuevo módulo del Android Studio. Revise el problema que aparece 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):
Ponga el archivo aar en el directorio libs (crear si es necesario), a continuación, agregue el código siguiente en su build.gradle:
dependencies { compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar') } repositories{ flatDir{ dirs 'libs' } }
Editar: La forma correcta (actualmente) de utilizar un archivo AAR local como dependencia de construcción es utilizar el asistente de importación de módulos (Archivo | Nuevo módulo | Importar .JAR o .AAR) que agregará automáticamente el .aar como un módulo de biblioteca En su proyecto.
Respuesta Antigua
Prueba esto:
allprojects { repositories { jcenter() flatDir { dirs 'libs' } } } ... compile(name:'slidingmenu', ext:'aar')
Tengo este trabajo 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 puse el archivo aar allí.
Estructura del directorio:
libs/ aars/ <-- newly created src/ build.gradle etc
Luego, los otros cambios:
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.
Puedes hacerlo de esta manera. Tiene que ir en el formato de maven:
repositories { maven { url uri('folderName')} }
Y entonces tu AAR necesita ir en una estructura de carpetas para un identificador de grupo "com.example":
folderName/ com/ example/ verion/ myaar-version.aar
Luego haga referencia como una dependencia:
compile 'com.example:myaar:version@aar'
Donde version
es la versión de su archivo aar (es decir, 3.0, etc)
Para cualquier persona que tenga este problema como de Android Studio 1.4, lo conseguí para trabajar creando un módulo dentro del proyecto que contiene 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')
A continuación, incluya la nueva biblioteca como una dependencia de módulo. Ahora puede utilizar un aar construido sin incluir las fuentes dentro del proyecto.
Crédito a Facebook para este hack. Encontré la solución al integrar el SDK de Android en un proyecto.
La forma más fácil ahora es añadirlo como un módulo
Esto creará un nuevo módulo que contiene el archivo aar, por lo que sólo tiene que incluir ese módulo como una dependencia después
En mi caso, ninguna de las respuestas anteriores funcionó! Ya que tuve diferentes productFlavors simplemente 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 debe introducir FlatDirs como este cuando hay diferentes productFlavors 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 la construcción
Desde Project / app / myModulesFolder / myLibXYZ
He puesto esto:
repositories { flatDir { dirs 'libs', '../../libs' } } compile (name: 'mylib-1.0.0', ext: 'aar')
Hecho y trabajando bien, mi submódulo XYZ depende de somelibrary del módulo principal.
- Cómo obtener actividad desde el contexto en android
- Cómo configurar una etiqueta de fragmento por código?