No se puede utilizar el archivo .aar local dentro del módulo de biblioteca

Tengo un aar de la biblioteca socialauth-android agregado a mi proyecto. Lo he puesto dentro del directorio flatDir como se describe aquí y funciona muy bien.
Ahora, estoy moviendo parte de mi código en el módulo de biblioteca denominado commons , para reutilizarlo en el otro proyecto. socialauth-android será utilizado enteramente por el módulo de biblioteca, así que lo he movido dentro del project/commons/libs/ an reescrito mis archivos de build.gradle . De ahora en adelante no puedo construir mi proyecto, porque surge el siguiente error:

 Error:A problem occurred configuring project ':ScrollApplication'. > Could not resolve all dependencies for configuration ':ScrollApplication:_developmentDebugCompile'. > Could not find :socialauth-android:. Searched in the following locations: http://dl.bintray.com/populov/maven//socialauth-android//socialauth-android-.pom http://dl.bintray.com/populov/maven//socialauth-android//socialauth-android-.aar https://oss.sonatype.org/content/repositories/snapshots//socialauth-android//socialauth-android-.pom https://oss.sonatype.org/content/repositories/snapshots//socialauth-android//socialauth-android-.aar https://repo1.maven.org/maven2//socialauth-android//socialauth-android-3.2.pom https://repo1.maven.org/maven2//socialauth-android//socialauth-android-3.2.aar file:/home/artem/Workspace/scrollandroid/libraries/socialauth-android-3.2.aar file:/home/artem/Workspace/scrollandroid/libraries/socialauth-android.aar Required by: scrollandroid:ScrollApplication:unspecified > scrollandroid:commons:unspecified 

El error dice que el resolvedor de dependencia intenta encontrar socialauth-android.aar dentro de la carpeta del project/libraries que es la carpeta para todas las bibliotecas comunes compartidas entre los módulos de mi proyecto. Pero he escrito en mi archivo de project/commons/build.gradle que el flatDir para el módulo commons es project/commons/libs ! Además, todas las bibliotecas contenidas en el project/commons/libs/ se encuentran durante la compilación sin ningún problema.

¿Cuál puede ser la fuente de este problema?

A continuación se muestran mis archivos build.gradle (algunos de sus códigos, como las declaraciones de dependencias, se descartan por brevedad):

proyecto / settings.gradle :

 include ':ScrollApplication', ':commons' 

proyecto / build.gradle :

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.0.0-rc1' } } 

proyecto / commons / build.gradle :

 apply plugin: 'com.android.library' repositories { maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } mavenCentral() flatDir { dirs "libs" } } android { compileSdkVersion 21 buildToolsVersion "21.1.1" defaultConfig { minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile(name:'socialauth-android', ext:'aar') } 

proyecto / app / build.gradle :

 apply plugin: 'com.android.application' repositories { maven { url "http://dl.bintray.com/populov/maven" } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } mavenCentral() flatDir { dirs "../libraries" } } configurations { apt } android { compileSdkVersion 21 buildToolsVersion "21.1.1" defaultConfig { minSdkVersion 14 targetSdkVersion 21 } lintOptions { abortOnError false } } dependencies { compile project(':commons') compile fileTree(dir: '../libraries', include: ['*.jar']) } 

Actualización : estructura del proyecto agregada

 ├── build.gradle ├── commons │  ├── build.gradle │  ├── libs │  ├── proguard-rules.pro │  └── src │  ├── androidTest │  │  └── java │  └── main │  ├── AndroidManifest.xml │  ├── assets │  ├── java │  └── res ├── gradle │  └── wrapper ├── libraries │  ├── aws-android-sdk-1.7.1.1-core.jar │  ├── aws-android-sdk-1.7.1.1-s3.jar │  ├── libGoogleAnalyticsServices.jar │  └── supertooltips-3.0.1.aar ├── scrollandroid-hg.iml ├── ScrollApplication │  ├── build.gradle │  ├── proguard.cfg │  ├── ScrollApplication.iml │  └── src │  └── main │  ├── AndroidManifest.xml │  ├── assets │  ├── java │  └── res ├── settings.gradle └── stacktrace.txt 

Parece que la biblioteca "commons" se está construyendo correctamente (¿se puede compilar por separado para verificar?), Pero la aplicación no lo es. Gradle tiene algunas reglas especiales para manejar dependencias transitivas (dependencias anidadas en otras dependencias) que existen ya que "commons" depende de "socialauth-android".

Intenta agregar un directorio extra al atributo "flatDir" en "project / app / build.gradle"

 flatDir { dirs "../libraries", "../commons/libs" } 

Parece ser un problema conocido que ha estado allí por mucho tiempo. La forma de incluir la dependencia .aar ahora días es como se hace referencia en esta pregunta:

Agregar archivos .aar locales a la generación de Gradle utilizando "flatDirs" no funciona

De forma predeterminada, el artefacto resultante no incluirá los archivos en el archivo .aar, a menos que cree una tarea de gradle que copie el contenido .aar en el artefacto deseado.

Si planea publicar su biblioteca .aar en un reporte de Maven, el archivo POM resultante tendrá su versión de dependencia definida como indefinida. Para cambiarlo, tendrá que trabajar con los métodos de sustitución de dependencia de gradle en su proyecto.

  • Gradle, Robolectric y Espresso
  • No se pudo generar el proyecto de android utilizando gradle
  • el ensamblaje del gradleRelease utiliza la llave / el certificado incorrectos
  • Android: No se pudo encontrar com.android.support:support-v4:23.2.1
  • Android Studio: Diferencia de tamaño entre Build APK vs Run APK
  • ¿Cómo crear un proyecto android con gradle desde la línea de comandos?
  • ¿Cómo publicar los apks en el Maven Central con gradle?
  • Agregar un proyecto .jar a androidstudio.
  • ¿Hay alguna forma de integrar Eclipse con Gradle en el proyecto de Android?
  • facebook screenshot-tests-para-android thow NullPointer en hacer captura de pantalla
  • Gradle Sube la aplicación android apk a maven repo (nexus)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.