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.

  • Android apk - Cómo excluir un archivo .so de una dependencia de terceros utilizando gradle
  • No se puede generar APK firmado con proguard habilitado cuando se usa Joda Time
  • Error de sincronización de proyecto de Gradle, sin cadenas de herramientas
  • Android Studio: ¿Cómo eliminar / filtrar las variantes de construcción para la depuración por defecto y la versión buildTypes y mantener sólo aquellos que utilizan buildTypes personalizado?
  • Crashlytics no deobfuscate código
  • Edificio Gradle tarda una eternidad después de actualizar a Java 8
  • Cobertura de código de Android en Jenkins CI
  • Archivos duplicados copiados en APK al incluir Joda Time y bibliotecas de E / S comunes en el proyecto de Android
  • Android Circle Gradle Advertencia: Las máquinas virtuales de generación tienen un límite de memoria de 4G
  • Con dos directorios res por variante de compilación, Gradle detuvo el seguimiento de los cambios en los archivos de recursos
  • Gradle maven dependencia no se encuentra si el complemento es android-library
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.