Soy consciente de esta pregunta: Agregar archivos .aar locales a mi compilación gradle pero la solución no funciona para mí.
Traté de agregar esta declaración al nivel superior de mi build.gradle
archivo:
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
También he puesto el slidingmenu.aar
archivo /libs
y lo hice referencia en la dependencies
sección: compile 'com.slidingmenu.lib:slidingmenu:1.0.0@aar'
pero no funcionó en absoluto.
Lo intenté compile files('libs/slidingmenu.aar')
también pero sin suerte.
¿Qué me estoy perdiendo? ¿Algunas ideas?
PS Android Studio 0.8.2
android
android-studio
android-gradle-plugin
build.gradle
aar
Alexey Dmitriev
fuente
fuente
Respuestas:
Sobre la base de la respuesta de Josías, así es como lo hice funcionar.
Siguiendo sus instrucciones (bajo editar) ( Archivo -> Nuevo-> Nuevo Módulo -> Importar .JAR / .AAR ) e importe su .AAR.
Luego, en su proyecto build.gradle (no el de nivel superior, el que está debajo de 'aplicación') agregue lo siguiente (en la sección de dependencias):
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
app/.idea
en la carpeta de nivel superior). O para decirlo de otra manera ...Esto funcionó para mí con Android Studio 0.8.0. No olvides sincronizar gradle (usando el botón de la barra de herramientas o en Archivo-> Sincronizar ) después de hacer esto.
(Gracias a Josiah por ayudarme a 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ónbuild.gradle
, pero nada de eso funcionó para mis archivos aars; los jar funcionarán bien, pero no los archivos aar)fuente
Error:(25, 0) Required keys [path] are missing from map {name=mylibrary-debug}.
si lo usocompile project(name:'mylibrary-debug')
... ¿Qué me estoy perdiendo?compile project(':Name-Of-Your-Project')
, reemplacéName-Of-Your-Project
con el nombre de mi archivo .aar (sin la.aar
extensión). Y funcionó.Actualización : como @ amram99 mencionó, el problema se ha solucionado a partir del lanzamiento de Android Studio v1.3.
Probado y verificado con las siguientes especificaciones
Lo que funciona ahora
Ahora puede importar un archivo aar local a través de la opción Archivo> Nuevo> Nuevo módulo> Importar paquete .JAR / .AAR en Android Studio v1.3
Sin embargo, la respuesta a continuación es verdadera y efectiva independientemente de los cambios de Android Studio, ya que esto se basa en scripts de gradle.
Respuesta anterior: en una actualización reciente, la gente de Android rompió la inclusión de archivos aar locales a través de la opción de agregar nuevo módulo del menú de Android Studio. Verifica el problema enumera 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), luego agregue el siguiente código en su build.gradle:
fuente
repositories
parte va de una manera diferentebuild.gradle
para funcionar: la global. Ladependencies
parte va en el módulobuild.gradle
. Es por eso que recibí el error.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 paquete .AAR) que agregará automáticamente el .aar como módulo de biblioteca en tu proyecto
Vieja respuesta
Prueba esto:
fuente
flatDir { dirs 'libs' }
bloque como se menciona en el OP usando AS 8.13 / Gradle 2.1Tengo esto trabajando en Android Studio 2.1. Tengo un módulo llamado "Native_Ads" que se comparte entre varios proyectos.
Primero, creé un directorio en mi módulo Native_ads con el nombre 'aars' y luego puse el archivo aar allí.
Estructura de directorios:
Luego, los otros cambios:
Archivo Gradle de nivel superior:
Archivo build.gradle del módulo de aplicación: - sin cambios
Archivo Settings.gradle (para incluir el módulo):
Archivo Gradle para el módulo Native_Ads:
Eso es. Limpiar y construir.
fuente
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 debe incluir ese módulo como una dependencia después
fuente
next
botón aparece atenuado en elCreate New Module
cuadro de diálogo después de seleccionar ImportarJAR/AAR Package
?.aar
archivo está dentro del directorio de un proyecto, simplemente lo coloqué.aar
en mi escritorio y lo volví a intentar y funciona, ¡gracias por su solución!so you just need to include that module as a dependency afterwards
: ¿cómo se hace eso?include
en elsettings.gradle
se suponía que era suficiente. Lo tengo funcionando. ¡Gracias!Esta es mi estructura y cómo resuelvo esto:
En build.gradle
desde Project / app / myModulesFolder / myLibXYZ
He puesto esto:
Hecho y funcionando bien, mi submódulo XYZ depende de una biblioteca del módulo principal.
fuente
Puedes hacerlo de esta manera. Tiene que ir en formato maven:
Y luego su AAR debe ir en una estructura de carpetas para una identificación de grupo "com.example":
Luego referencia como dependencia:
compile 'com.example:myaar:version@aar'
¿Dónde
version
está la versión de su archivo aar (es decir, 3.0, etc.)fuente
Para cualquiera que tenga este problema a partir de Android Studio 1.4, lo hice funcionar 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')
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 SDK de Android en un proyecto.
fuente
apply plugin: 'com.android.application'
aapply plugin: 'com.android.library'
En mi caso, ¡ninguna de las respuestas anteriores funcionó! ya que tenía diferentes productos y sabores simplemente agregando
repositories{ flatDir{ dirs 'libs' } }
¡no funcionó! Terminé especificando la ubicación exacta del directorio libs :
}
Supongo que uno debería introducir FlatDirs como este cuando hay diferentes ProductFlavors en build.gradle
fuente
En mi caso, solo pongo el archivo aar en libs y agrego
dependencies { ... api fileTree(dir: 'libs', include: ['*.aar']) ... }
en build.gradle y funciona. Creo que es similar con la dependencia generada por defecto:
implementation fileTree(dir: 'libs', include: ['*.jar'])
fuente
Esta línea incluye todos
aar
yjar
archivos de lalibs
carpeta:fuente
Agregue a continuación en el proyecto de implementación del archivo gradle de la aplicación (ruta: ': nombre del proyecto')
fuente
Si ya usa Kotlin Gradle DSL, la alternativa a usarlo de esta manera:
Aquí está mi estructura de proyecto
Mi
app/build.gradle.kts
fileTree
flatDirs
Se
group
necesitaba, debido a su obligatorio (no opcional / tiene valor predeterminado) en kotlinimplementation
, ver a continuación:Descargo de responsabilidad: la diferencia con el
flatDirs
enfoque n. ° 1 y n. ° 2, todavía no sé mucho, es posible que desee editar / comentar esta respuesta.Referencias
fuente