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:
- de alguna manera hace que Gradle piense que projLib es una biblioteca que no debería compilarse para apk
- 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