java android gradle android-studio build.gradle

java - Cómo importar un proyecto de Android como biblioteca y NO compilarlo como apk(Android studio 1.0)



gradle android-studio (3)

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 me da este error:

Error: dependencia Android_2015: projLib: sin especificar en el proyecto, projAPK se resuelve en un archivo APK que no es compatible 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 para esto:

  1. de alguna manera hace que Gradle piense que projLib es una biblioteca que no debería compilarse para apk
  2. de alguna manera hacer que gradle NO compile projLib explícitamente

El problema es que no pude encontrar cómo hacer nada de eso. Sería genial si ustedes pueden ayudar :)


En el archivo build.gradle de projLib, verá una declaración como esta:

apply plugin: ''com.android.application''

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

apply plugin: ''com.android.library''

se construirá como una biblioteca, generando un AAR, y debería funcionar.

Si también necesita projLib para generar un APK por separado, tendrá que refactorizar para extraer el código común que necesita en un tercer módulo de biblioteca, y ambos APK dependerán 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.


simplemente agregue estas líneas al archivo gradle biblioteca y elimine 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'' ,... }


En el archivo gradle del módulo :

Reemplace el apply plugin: ''com.android.application'' con el apply plugin: ''com.android.library''

Luego, elimine applicationId "xxx.xxx.xxxx"

Limpiar y construir