Cómo incluir dependencias de maven remoto en una biblioteca de Android

Tengo un problema muy complejo. Mi empresa desarrolló un SDK y el resultado es un archivo AAR que se ha publicado en un repositorio Maven remoto (al que se puede acceder de forma anónima). Sin embargo, este AAR tiene varias dependencias, por ejemplo:

dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile files('libs/BluetoothLeLibrary-0.0.2.jar') compile 'com.google.code.gson:gson:2.3' compile 'com.company.sdk.client:sdk-client-lib:1.2.1.1@jar' compile 'com.company.internal.commons:enums:1.0@jar' compile 'com.google.android.gms:play-services-location:6.5.87' compile 'com.android.support:support-v4:21.0.3' compile 'com.google.guava:guava:18.0' compile 'com.google.api-client:google-api-client-android:1.17.0-rc' compile('com.google.api-client:google-api-client:1.17.0-rc') { exclude(group: 'xpp3', module: 'xpp3') exclude(group: 'org.apache.httpcomponents', module: 'httpclient') exclude(group: 'junit', module: 'junit') exclude(group: 'com.google.android', module: 'android') } compile('com.google.http-client:google-http-client-android:1.17.0-rc') { exclude(group: 'com.google.android', module: 'android') } } 

Los que empiezan con com.company son bibliotecas privadas que nuestra empresa utiliza. Están ubicados en otro repo Maven, que sólo es accesible para los empleados y colaboradores que utilizan un nombre de usuario y una contraseña.

Ahora, este archivo AAR puede ser utilizado por cualquier desarrollador para poder acceder a sus características. Sin embargo, si se agrega la dependencia como se muestra en el Ejemplo de código A, el proceso de generación se rompe, ya que requiere acceso a la variable @ enterger / google_play_services_version del servicio de Google Play utilizada en el manifiesto de Android. Encontré dos soluciones para esto, que se muestran en los ejemplos de código B y C. Sin embargo, utilizando el ejemplo de código B, la aplicación que utiliza el SDK intenta descargar y tener acceso a las bibliotecas privadas de la compañía; pero ya que sólo son accesibles a través de un usuario y contraseña, simplemente no se encuentran por gradle. Por otro lado, el código muestra C deja la aplicación no puede encontrar clases y métodos en esas bibliotecas; curiosamente, el código se compila y se ejecuta, pero la aplicación se bloquea con java.lang.VerifyError y rechaza las clases del SDK.

¿Cómo puedo agregar estas bibliotecas privadas al AAR, para evitar que la aplicación intente descargarlas? ¿O cómo podría resolver este problema?

Código Muestra A:

 compile 'com.company.sdk:library:1.3.0.0@aar' 

Ejemplo de código B:

 compile ('com.company.sdk:library:1.3.0.0@aar'){ transitive=true } 

Código Muestra C:

 compile 'com.google.android.gms:play-services-location:6.5.87' compile ('com.company.cc.sdk:library:1.3.0.2@aar'){ exclude(group: 'com.google.android.gms', module:'play-services-location') } 

  • ¿Por qué no hay Android SDK 4.4 en el Maven Repository?
  • Error al ejecutar el objetivo com.jayway.maven.plugins.android.generation2: android-maven-plugin
  • Generar informes de cobertura de código para Android Maven Library Project
  • Android: error que incluye / reempaque las dependencias que hacen referencia a las clases principales de javax
  • NoClassDefFoundError con Android Support Library y Maven
  • Maven y Android Facebook SDK apklib
  • Android-maven-plugin, pruebas de instrumentación y testSize
  • Error de compilación de Gradle: No se pueden cargar metadatos de Maven desde https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml
  • ¡Está faltando android.compileSdkVersion! Error gradle build
  • No se puede agregar ViewPagerIndicator a la aplicación con Gradle
  • Configuración del procesador de anotación explícita
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.