Cómo importar el proyecto android como biblioteca y NO compilarlo como apk (Android studio 1.0)

Intenté importar un proyecto (projLib) como dependencia para otro proyecto (projAPK).

ProjAPK gradle tiene esto:

dependencies { compile project(':libs:NewsAPI') compile project(':projLib') } 

Pero cuando sincronizo el gradle da este error:

Error: Dependencia Android_2015: projLib: no especificado en el proyecto projAPK se resuelve en un archivo APK que no se admite como una dependencia de compilación. Archivo: /Users/myname/Documents/Development/Android_2015/libs/projAPK/build/outputs/apk/projLib-release-unsigned.apk

Así que supongo que hay dos soluciones a esto:

  1. De alguna manera hacer gradle pensar que projLib es una biblioteca que no se debe compilar a apk
  2. De alguna manera hacer gradle NO compilar el projLib explícitamente

El problema es que no pude encontrar cómo hacer nada de eso. Sería increíble si ustedes pueden ayudar 🙂

En el archivo build.gradle de projLib, verá una sentencia como esta:

 apply plugin: 'com.android.application' 

Que le dice a Gradle que lo construya como una aplicación, generando un APK. Si lo cambia a esto:

 apply plugin: 'com.android.library' 

Se construirá como una biblioteca, la generación de un AAR, y debe funcionar.

Si también necesita projLib para generar un APK aparte, tendrá que hacer alguna refactorización para extraer el código común que necesite en un tercer módulo de biblioteca y que ambos APKs dependan de él.

Las bibliotecas no pueden establecer un applicationId , por lo que si ve un mensaje de error en ese sentido, elimínelo del script de compilación de la biblioteca.

En el módulo gradle file

Reemplazar apply plugin: 'com.android.application' con apply plugin: 'com.android.library'

A continuación, quite applicationId "xxx.xxx.xxxx"

Limpiar y construir

Sólo tiene que añadir estas líneas al archivo gradle biblioteca y eliminar otras secciones

 apply plugin: 'com.android.library' android { compileSdkVersion 23 buildToolsVersion '23.0.2' } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.squareup.picasso:picasso:2.4.0' compile 'com.google.code.gson:gson:2.2.4' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:gridlayout-v7:23.1.1' ,... } 
  • La importación com.google.android.gms.location.LocationClient no se puede resolver
  • Android: Cómo configurar una IP estática para una nueva configuración WiFi
  • ¿Cómo puedo coordinar dos tareas de fondo?
  • Salida automática después de X minutos, Android
  • ¿Cómo puedo hacer que mi clave de API esté oculta para que cualquiera que descomponga mi aplicación no la vea?
  • Comprobación de consultas de Sqlite - menor y mayor que
  • ¿Por qué los tipos Java.util.concurrent.TimeUnit no son mayores que SECONDS disponibles en Android?
  • Implementación de Autocompletar con ListView en Android
  • Android espera hasta que la tarea asíncrona haya terminado de hacer el método específico
  • Lectura y escritura de un archivo desde la tarjeta SD
  • ISO 8601 con milisegundos y Retrofit
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.