¿Cómo hacer referencia a paquetes de dependencias en una Biblioteca de Android como .aar?
Tengo un complemento de la biblioteca android que utiliza varias librerías android incluidas como archivos .jar y se hace referencia directamente desde mi archivo build.gradle:
compile fileTree(dir: 'libs', include: '*.jar')
Entonces emitiría un comando gradlew assembleRelease
para crear un archivo .aar que sería utilizable dentro de una aplicación android. Esto siempre ha estado funcionando bien para mí hasta ahora.
- Resolver avisos NDK obsoletos en Android Studio
- Gradle experimental incluir directorios de archivos a través de la directiva srcDir srcFile
- Se han encontrado problemas al cargar complementos en Android Studio
- Edición de problemas apk file
- Uso de SimpleXML con Android y Gradle
Ahora necesito usar los Servicios de Google Play en mi android-library. Como se indica en la documentación oficial de Android ( http://developer.android.com/google/play-services/setup.html#Setup ), necesito incluir los servicios de Google Play como un proyecto de biblioteca importándolo de maven :
compile 'com.google.android.gms:play-services:4.3.23'
Pero cuando construyo mi archivo .aar, los servicios de Google Play no parecen estar incluidos en él (mi archivo .aar es de sólo 200 KB y la biblioteca .jar de Google Play Services es> 1 MB).
He leído que los servicios de Google Play deben estar referenciados como un módulo de biblioteca de Android, pero no puedo importarlos así sin errores de compilación. ¿Puede alguien ayudarme a tener los servicios de Google Play empaquetados en mi android-library?
Mi archivo android-library build.gradle:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' } } apply plugin: 'android-library' repositories { mavenCentral() } dependencies { compile 'com.google.android.gms:play-services:4.3.23' compile fileTree(dir: 'libs', include: '*.jar') } android { compileSdkVersion 19 buildToolsVersion '19.0.1' defaultConfig { minSdkVersion 9 targetSdkVersion 19 } release { runProguard false } }
Mi aplicación android archivo build.gradle:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' } } apply plugin: 'android' repositories { mavenCentral() flatDir { dirs 'libs' } } android { compileSdkVersion 19 buildToolsVersion "19.0.1" defaultConfig { minSdkVersion 9 targetSdkVersion 19 } buildTypes { release { runProguard true proguardFile getDefaultProguardFile('proguard-android-optimize.txt') } } productFlavors { defaultFlavor { proguardFile 'proguard-rules.txt' } } } dependencies { compile 'com.android.support:appcompat-v7:+' compile 'novom.anyware.anywaresdk:anywaresdk:0.1.0@aar' }
Al emitir una gradle dependencies
de la raíz de mi módulo principal, aquí está mi resultado:
Relying on packaging to define the extension of the main artifact has been depre cated and is scheduled to be removed in Gradle 2.0 :MyOldApp:dependencies ------------------------------------------------------------ Project :MyOldApp ------------------------------------------------------------ _DefaultFlavorDebugApk +--- com.android.support:appcompat-v7:+ -> 19.1.0 | \--- com.android.support:support-v4:19.1.0 \--- novom.anyware.anywaresdk:anywaresdk:0.1.0 _DefaultFlavorDebugCompile +--- com.android.support:appcompat-v7:+ -> 19.1.0 | \--- com.android.support:support-v4:19.1.0 \--- novom.anyware.anywaresdk:anywaresdk:0.1.0 _DefaultFlavorReleaseApk +--- com.android.support:appcompat-v7:+ -> 19.1.0 | \--- com.android.support:support-v4:19.1.0 \--- novom.anyware.anywaresdk:anywaresdk:0.1.0 _DefaultFlavorReleaseCompile +--- com.android.support:appcompat-v7:+ -> 19.1.0 | \--- com.android.support:support-v4:19.1.0 \--- novom.anyware.anywaresdk:anywaresdk:0.1.0 _DefaultFlavorTestApk No dependencies _DefaultFlavorTestCompile No dependencies apk - Classpath packaged with the compiled main classes. +--- com.android.support:appcompat-v7:+ -> 19.1.0 | \--- com.android.support:support-v4:19.1.0 \--- novom.anyware.anywaresdk:anywaresdk:0.1.0 archives - Configuration for archive artifacts. No dependencies compile - Classpath for compiling the main sources. +--- com.android.support:appcompat-v7:+ -> 19.1.0 | \--- com.android.support:support-v4:19.1.0 \--- novom.anyware.anywaresdk:anywaresdk:0.1.0 debugApk - Classpath packaged with the compiled debug classes. No dependencies debugCompile - Classpath for compiling the debug sources. No dependencies default - Configuration for default artifacts. No dependencies defaultFlavorApk - Classpath packaged with the compiled defaultFlavor classes. No dependencies defaultFlavorCompile - Classpath for compiling the defaultFlavor sources. No dependencies instrumentTestApk - Classpath packaged with the compiled instrumentTest classes. No dependencies instrumentTestCompile - Classpath for compiling the instrumentTest sources. No dependencies instrumentTestDefaultFlavorApk - Classpath packaged with the compiled instrument TestDefaultFlavor classes. No dependencies instrumentTestDefaultFlavorCompile - Classpath for compiling the instrumentTestD efaultFlavor sources. No dependencies releaseApk - Classpath packaged with the compiled release classes. No dependencies releaseCompile - Classpath for compiling the release sources. No dependencies BUILD SUCCESSFUL Total time: 7.388 secs
- Android / gradle: incluye el nombre de la versión del sabor en el nombre de archivo apk
- Apache HttpClient Android (Gradle)
- Error de Gradle: no se pudo ejecutar la compilación usando la distribución gradle
- Android Build.gradle DuplicateFileException Error
- Error de sincronización de proyecto de Gradle, sin cadenas de herramientas
- Explicar la estrategia de dependencias transitivas descrita en la documentación de Android Build System
- Falta dependencias de la biblioteca de Android de POM con Gradle
- No se puede construir el proyecto, los problemas con Gradle?
- Cómo reemplazar fragmento a otro fragmento en TabLayout y ViewPager
- Servidor SyncAdapter y Rest con respuesta paginada