android parse.com gradle android-gradle build.gradle
https://developers.facebook.com/resources/facebook-android-sdk-4.0.1.zip

android - Siempre que la dependencia de Gradle sea AAR, no JAR



parse.com android-gradle (7)

Tengo un problema en el que trato de incluir una biblioteca en mi proyecto llamada ParseLoginUI .

El problema es que usa la etiqueta proporcionada en lugar de compilar. Creo que la etiqueta proporcionada significa que el proyecto necesita proporcionar esta dependencia para que la biblioteca funcione en lugar de que esta biblioteca compile las bibliotecas.

Entonces en mi biblioteca de Android hace referencia al SDK de Facebook como tal.

provided ''com.facebook.android:facebook-android-sdk:4.0.1''

Luego en mi móvil / build.gradle, que es mi módulo principal, compilo los sdks de Facebook como tal.

compile ''com.facebook.android:facebook-android-sdk:4.0.1''

He estado siguiendo la guía para instalar esta biblioteca y así es como debe hacerlo. Aquí está la advertencia que recibo que me impide compilar lanzado por el archivo ParseLoginUI/build.gradle (el que lo proporciona).

Warning:Project ParseLoginUI: provided dependencies can only be jars. com.facebook.android:facebook-android-sdk:aar:4.0.1 is an Android Library.

La documentación de esta biblioteca tiene una solución que es:

Si está utilizando gradle 1.1.0 o superior, puede encontrar "Advertencia: Project ParseLoginUI: las dependencias proporcionadas solo pueden ser jarras. Com.facebook.android:facebook-android-sdk:aar:4.0.1 es una biblioteca de Android". Es un problema abierto de la herramienta de creación android gradle. Actualmente el workround está usando gradle 1.0.0.

Bastante justo pero no quiero degradar mi gradle (actualmente ejecutando v1.2.3) solo para resolver este problema. Debe haber una forma de evitar esto o una mejor manera de hacerlo.

Mi pregunta

¿Cómo puedo incluir el SDK de Facebook en el módulo de la biblioteca y en mi módulo principal?


De acuerdo con este problema , debería ser posible hacer con el plugin 1.3.0-beta3 . Es posible que deba actualizar sus herramientas de compilación a la versión 23.0.0 rc1 o superior.


Después de probar y error, encontré la solución ...

En primer lugar, AAR significa biblioteca de archivos de Android, que no es un JAR. Busqué algo llamado facebook-android-sdk-4.0.1.jar , pero no facebook-android-sdk-4.0.1.jar suerte.

El truco es descargar el código de Facebook y agregarlo como un módulo. Al hacerlo, funciona perfectamente y puede usar gradle 1.2.3 con ParseLoginUI.

Vaya aquí: https://developers.facebook.com/docs/android/downloads

Descargar: https://developers.facebook.com/resources/facebook-android-sdk-4.0.1.zip Descomprimirlo.

Ve a tu propio proyecto -Remove en su ParseLoginUI gradle la referencia a Parse

Presione ARCHIVO, NUEVO, MÓDULO DE IMPORTACIÓN.

Seleccione una carpeta llamada facebook que se encuentre dentro del archivo comprimido que haya descomprimido.

Llame a ese módulo facebook-android-sdk-4.0.1.

Ahora agregue en su parseloginui una dependencia a ese módulo, usando:

compile project('':facebook-android-sdk-4.0.1’)

También debe copiar un archivo del archivo comprimido que descargó en la nueva carpeta del módulo, el archivo es gradle.properties. El que tiene:

ANDROID_BUILD_MIN_SDK_VERSION=9 ANDROID_BUILD_TARGET_SDK_VERSION=21 ANDROID_BUILD_TOOLS_VERSION=21.1.2 ANDROID_BUILD_SDK_VERSION=21

Eso es todo.

Presiona SINCRONIZAR y cruza los dedos.

Trabajé en mi caso después de varias horas jugando con gradle y android studio. Avísame si lo obtienes. Si tiene problemas de referencia (tuve), use ARCHIVO, ESTRUCTURA DEL PROYECTO para agregar las referencias de jar a sus módulos correctamente. (Los escribí manualmente y parece que fue un error en mis referencias de análisis sintáctico, probablemente una ruta o un símbolo, no sé. Hacer eso usando la interfaz de usuario de android studio solucionará el problema). Por cierto, puedes usar una versión de parse en ParseLoginUI y otra más reciente en tu proyecto (no lo he probado para la versión de facebook).

Esto es lo que tengo en mi archivo gradle ParseLoginUI:

compile ''com.parse.bolts:bolts-android:1.2.0'' compile ''com.android.support:support-v4:22.0.0'' compile project('':facebook-android-sdk-4.0.1'') compile files(''libs/Parse-1.9.1.jar'') compile files(''libs/ParseFacebookUtilsV4-1.9.1.jar'')

Y esto es lo que tengo en mi app gradle:

compile ''com.google.android.gms:play-services:7.5.0'' compile project('':facebook-android-sdk-4.0.1'') compile ''com.parse.bolts:bolts-android:1.2.0'' compile files(''libs/Parse-1.9.2/Parse-1.9.2.jar'') compile files(''libs/Parse-1.9.2/ParseFacebookUtilsV4-1.9.2.jar'') compile project('':ParseLoginUI’)

Nota: uso Gradle versión 2.4 y Android plugin versión 1.2.3. Seleccione eso en ARCHIVO, ESTRUCTURA DEL PROYECTO, PROYECTO.

Buena suerte.



Puedes probar esta sintaxis:

proporcionado (nombre: "", ext: ''aar'')

Asegúrese de que su build.gradle principal tenga la ruta o el repositorio maven del paquete aar que desee.


Tuve este problema con la caligrafía (github.com/chrisjenx/Calligraphy) y gradle 2.3.3. Cambié el repositorio de jcenter () a mavenCentral () y ahora está bien.


en lugar de eso,

  1. Clona ParseLoginUI desde here

  2. Importe ParseLoginUI como un módulo e inclúyalos en gradle

    compile project('':ParseLoginUI'') compile ''com.facebook.android:facebook-android-sdk:4.0.1''

Espero que esto ayude


ya has mencionado que es un problema abierto en Gradle. Si está utilizando ParseLoginUI como módulo de biblioteca. Simplemente cambie el archivo build.gradle en ParseLoginUI.

provided ''com.facebook.android:facebook-android-sdk:4.0.1'' to compile ''com.facebook.android:facebook-android-sdk:4.0.1''