usar una studio librerías libreria importar externa eliminar cómo create como agregar android gradle android-gradle build.gradle

una - Cómo incluir manualmente el paquete aar externo usando el nuevo sistema de desarrollo de Android Gradle



eliminar libreria android studio (17)

He estado experimentando con el nuevo sistema de compilación de Android y me he encontrado con un pequeño problema. He compilado mi propio paquete aar de ActionBarSherlock que he llamado ''actionbarsherlock.aar''. Lo que estoy tratando de hacer es usar esta aar para construir mi APK final. Si incluyo toda la biblioteca ActionBarSherlock como un módulo de la biblioteca de Android en mi proyecto principal utilizando el proyecto de compilación ('': actionbarsherlock''), puedo construir con éxito sin problemas.

Pero mi problema es que quiero proporcionar MANUALMENTE esa dependencia como un paquete de archivos simplemente si quisiera un JAR, entonces parece que no puedo encontrar la forma de incluirlo correctamente en mi proyecto. He intentado usar la configuración de compilación, pero esto no parece funcionar. Sigo obteniendo el símbolo no puedo encontrar durante la compilación, lo que me dice que las classes.jar del paquete aar no se incluyen en el classpath.

¿Alguien sabe de la sintaxis para incluir manualmente un paquete aar como un 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" }

EDIT: Entonces, la respuesta es que actualmente no es compatible, aquí está el issue si desea realizar un seguimiento.

EDITAR: Actualmente, como todavía no se admite directamente, la mejor alternativa parece ser la solución propuesta de @RanWakshlak

EDITAR: También es más simple usando la sintaxis propuesta por @VipulShah


  1. Haga clic derecho en su proyecto y seleccione "Abrir la 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.

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

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

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

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

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


¡Acabo de tener éxito!

  1. Copie el archivo mylib-0.1.aar en la carpeta libs /

  2. Agregue estas líneas al final de build.gradle (debe ser una aplicación, no un proyecto):

    repositories { flatDir { dirs ''libs'' } } dependencies { compile ''com.example.lib:mylib:0.1@aar'' }

  3. Hasta ahora tan bueno. Aquí viene el punto más importante:

Gradle necesita acceder a la red para dependencias a menos que el modo fuera de línea esté habilitado.

Asegúrese de que ha habilitado el trabajo fuera de línea a través de la casilla de verificación en Estructuras del proyecto / Gradle

- O -

Configure los ajustes del proxy para acceder a la red.

Para configurar los ajustes del proxy, debe modificar el archivo gradle.properties del proyecto, configurando http y https por separado como se muestra a continuación:

systemProp.http.proxyHost=proxy.example.com systemProp.http.proxyPort=8080 systemProp.http.proxyUser=user systemProp.http.proxyPassword=pass systemProp.http.nonProxyHosts=localhost systemProp.http.auth.ntlm.domain=example <for NT auth> systemProp.https.proxyHost=proxy.example.com systemProp.https.proxyPort=8080 systemProp.https.proxyUser=user systemProp.https.proxyPassword=pass systemProp.https.nonProxyHosts=localhost systemProp.https.auth.ntlm.domain=example <for NT auth>

Espero que esto funcione.



Desafortunadamente, ninguna de las soluciones aquí funcionó para mí (tengo dependencias sin resolver). Lo que finalmente funcionó y es la forma más sencilla de IMHO es: resaltar el nombre del proyecto en Android Studio, luego Archivo -> Nuevo módulo -> Importar paquete JAR o AAR. El crédito va a la solución en este post.


El siguiente enfoque funciona con el último estudio de Android (> v0.8.x):

  • Guarde el archivo aar en la carpeta libs del módulo de la aplicación (por ejemplo: <project>/<app>/libs/myaar.aar )

  • Agregue lo siguiente a build.gradle de su carpeta del módulo de "aplicación" (no a la raíz de su proyecto build.gradle). Anote 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'' } }

  • Haga clic en Tools -> Android -> Sync Project with Gradle Files


En mi caso, solo funciona cuando agrego "proyecto" para compilar:

repositories { mavenCentral() flatDir { dirs ''libs'' } } dependencies { compile project(''com.x.x:x:1.0.0'') }


En mi caso, tengo algunas dependencias en mi biblioteca y cuando aar un aar partir de ella aar , debido a las dependencias perdidas, por lo que mi solución es agregar todas las dependencias de mi biblioteca con un archivo arr .

Así que mi nivel de proyecto build.gradle ve así:

buildscript { repositories { mavenCentral() } dependencies { classpath ''com.android.tools.build:gradle:2.1.2'' } } allprojects { repositories { mavenCentral() //add it to be able to add depency to aar-files from libs folder in build.gradle(yoursAppModule) flatDir { dirs ''libs'' } } } task clean(type: Delete) { delete rootProject.buildDir }

build.gradle(modile app) para:

apply plugin: ''com.android.application'' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.example.sampleapp" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } } } dependencies { //your project depencies ... //add lib via aar-depency compile(name: ''aarLibFileNameHere'', ext: ''aar'') //add all its internal depencies, as arr don''t have it ... }

y la biblioteca build.gradle :

apply plugin: ''com.android.library'' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } } } dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') //here goes library projects dependencies, which you must include //in yours build.gradle(modile app) too ... }



Intenté todas las soluciones aquí, pero ninguna está funcionando, luego me di cuenta de que cometí un error, puse el .aar en la carpeta incorrecta, como se puede ver a continuación, pensé que debería poner en la carpeta raíz, así que creé una carpeta libs allí ( 1 en la imagen), pero dentro de la carpeta de la aplicación, ya hay libs , deberías poner segundas libs , espero que esto ayude a aquellos que tienen el mismo problema que el mío:


La forma estándar de importar un archivo AAR en una aplicación se encuentra en https://developer.android.com/studio/projects/android-library.html#AddDependency

Haga clic en Archivo> Nuevo> Nuevo módulo. Haga clic en Importar .JAR / .AAR Package luego haga clic en Siguiente. Ingrese la ubicación del archivo AAR o JAR compilado y luego haga clic en Finalizar.

Por favor, consulte el enlace de arriba para los próximos pasos.


Puede agregar múltiples dependencias aar con solo unas pocas líneas de código.

Añadir repositorio de flatDir local:

repositories { flatDir { dirs ''libs'' } }

Agregue cada aar en el directorio libs para compile la configuración de dependencia:

fileTree(dir: ''libs'', include: ''**/*.aar'') .each { File file -> dependencies.add("compile", [name: file.name.lastIndexOf(''.'').with { it != -1 ? file.name[0..<it] : file.name }, ext: ''aar'']) }


Puede hacer referencia a un archivo AAR desde un repositorio. Maven es una opción, pero hay una solución más simple: coloque el archivo aar en su directorio libs y agregue un repositorio de directorios.

repositories { mavenCentral() flatDir { dirs ''libs'' } }

Luego haga referencia a la biblioteca en la sección de dependencia:

dependencies { compile ''com.actionbarsherlock:actionbarsherlock:4.4.0@aar'' }

Puedes consultar la publicación del blog de Min''an para obtener más información.


Solo para simplificar la respuesta.

Si el archivo .aar está presente localmente, entonces incluya
compile project('':project_directory'') en dependencias de build.gradle de su proyecto.

Si el archivo .aar está presente en el control remoto, incluya compile ''com.*********.sdk:project_directory:0.0.1@aar'' en las dependencias de build.gradle de su proyecto.



Tiene 2 formas:

  • Primera forma

1: Abra su Android Studio y navegue a la ventana "Crear nuevo módulo" por Archivo-> Nuevo-> Nuevo módulo ...

2: Seleccione el elemento "Importar .JAR / .AAR Package" y haga clic en el botón siguiente

3: Agregue la dependencia en el archivo build.gradle que pertenece a su app Modlue.

dependencies { ... implementation project(path: '':your aar lib name'') }

que todos.

  • segunda vía

1 Cree una carpeta en el directorio libs , como aars .

2 Coloque su biblioteca de aar en la carpeta aars.

3 Agrega el fragmento de código

repositories { flatDir { dirs ''libs/aars'' } }

en su archivo build.gradle pertenece al módulo de la aplicación.

4 Agregue dependencia en el archivo build.gradle que pertenezca a su app Modlue.

dependencies { ... compile(name:''your aar lib name'', ext:''aar'') }

que todos

Si puedes leer chino, puedes consultar el blog 什么是AAR文件以及如何在Android开发中使用


antes (por defecto)

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

solo agrega ''*.aar'' en la matriz de include .

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

Funciona bien en Android Studio 3.x.


Siga los pasos a continuación para que funcione (lo he probado en Android Studio 2.2)

Digamos que has guardado un archivo en la carpeta libs. ( cards.aar nombre del archivo es cards.aar )

luego, en la aplicación build.gradle especifique lo siguiente y haga clic en sincronizar proyecto con archivos Gradle. Abra el nivel de proyecto build.gradle y agregue flatDir{dirs ''libs''} como lo hizo abajo

allprojects { repositories { jcenter() flatDir { dirs ''libs'' } } }

y ahora abra el archivo build.grdle de nivel de aplicación y agregue el archivo .aar

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

Si todo va bien, verá que la entrada de la biblioteca está hecha en compilación -> exploded-aar

También tenga en cuenta que si está importando un archivo .aar de otro proyecto que tiene dependencias, también deberá incluirlos en su build.gradle.