tutorial studio integrar instalar example con android facebook gradle android-studio

studio - integrar sdk facebook en android



Error de compilación de Gradle al intentar usar Facebook SDK (3)

Estoy tratando de usar el SDK de Facebook en un proyecto en Android Studio. Estoy siguiendo el paso 3 de este tutorial. Cuando trato de ejecutar la aplicación, obtengo un "Gradle: ejecución fallida para la tarea": ​​FacebookApp: dexDebug ''. " error. A continuación se muestra el resultado si el error

Gradle: Execution failed for task '':FacebookApp:dexDebug''.

Error al ejecutar el comando: C: / android-sdk / build-tools / 18.0.0 / dx.bat --dex --output C: / Users / Brandon / AndroidStudioProjects / FacebookAppProject / FacebookApp / build / libs / FacebookApp-debug. dex C: / Users / Brandon / AndroidStudioProjects / FacebookAppProject / FacebookApp / build / classes / debug C: / Users / Brandon / AndroidStudioProjects / FacebookAppProject / FacebookApp / build / dependency-cache / debug C: / Users / Brandon / AndroidStudioProjects / FacebookAppProject / FacebookApp / build / explosion-bundles / FacebookAppProjectLibrariesFacebookUnspecified.aar / classes.jar C: / Users / Brandon / AndroidStudioProjects / FacebookAppProject / FacebookApp / build / explosion-bundles / FacebookAppProjectLibrariesFacebookUnspecified.aar / libs / android-support-v4.jar C: / android-sdk / extras / android / m2repository / com / android / support / support-v4 / 13.0.0 / support-v4-13.0.0.jar Código de error: 1 Salida: EXCEPCIÓN DE NIVEL SUPERIOR INESPERADA: java.lang.IllegalArgumentException : ya agregado: Landroid / support / v4 / accessibilityservice / AccessibilityServiceInfoCompat $ AccessibilityServiceI nfoIcsImpl; en com.android.dx.dex.file.ClassDefsSection.add (ClassDefsSection.java:123) en com.android.dx.dex.file.DexFile.add (DexFile.java:163) en com.android.dx.command .dexer.Main.processClass (Main.java:490) en com.android.dx.command.dexer.Main.processFileBytes (Main.java:459) en com.android.dx.command.dexer.Main.access $ 400 ( Main.java:67) en com.android.dx.command.dexer.Main $ 1.processFileBytes (Main.java:398) en com.android.dx.cf.direct.ClassPathOpener.processArchive (ClassPathOpener.java:245) en com.android.dx.cf.direct.ClassPathOpener.processOne (ClassPathOpener.java:131) en com.android.dx.cf.direct.ClassPathOpener.process (ClassPathOpener.java:109) en com.android.dx.command. dexer.Main.processOne (Main.java:422) en com.android.dx.command.dexer.Main.processAllFiles (Main.java:333) en com.android.dx.command.dexer.Main.run (Main. java: 209) en com.android.dx.command.dexer.Main.main (Main.java:174) en com.android.dx.command.Main.main (Main.java:91) 1 error; abortar

Aquí está el build.gradle para el módulo de Facebook:

buildscript { repositories { maven { url ''http://repo1.maven.org/maven2'' } } dependencies { classpath ''com.android.tools.build:gradle:0.5.+'' } } apply plugin: ''android-library'' dependencies { compile files(''libs/android-support-v4.jar'') } android { compileSdkVersion 18 buildToolsVersion "18.0.0" defaultConfig { minSdkVersion 7 targetSdkVersion 16 } sourceSets { main { manifest.srcFile ''AndroidManifest.xml'' java.srcDirs = [''src''] resources.srcDirs = [''src''] res.srcDirs = [''res''] } } }

Y el build.gradle para el proyecto:

buildscript { repositories { mavenCentral() } dependencies { classpath ''com.android.tools.build:gradle:0.5.+'' } } apply plugin: ''android'' repositories { mavenCentral() } dependencies { compile ''com.android.support:support-v4:13.0.+'' compile project('':libraries:facebook'') } android { compileSdkVersion 18 buildToolsVersion "18.0.0" defaultConfig { minSdkVersion 7 targetSdkVersion 16 } }

¿Estoy haciendo algo mal?


Está agregando la biblioteca de soporte de Android dos veces, lo que resulta en un conflicto de fusión dex. Su proyecto principal se refiere a la biblioteca maven con ''com.android.support:support-v4:13.0.+'' y su proyecto de Facebook se refiere a ella con files(''libs/android-support-v4.jar'') . Gradle no puede resolver conflictos entre archivos jar locales, por lo que debe consultarlos a través de maven.

Modifique la sección de dependencies de su build.gradle de Facebook a:

dependencies { compile ''com.android.support:support-v4:13.0.+'' }

y todo debería funcionar


En android studio, así es como incluyo una biblioteca de soporte y Facebook SDK. Apoyo la API 15+.

dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) compile ''fr.avianey:facebook-android-api:+@aar'' compile ''com.android.support:support-v13:20.0.0'' ... }


Tuve un problema similar y fue simplemente un descuido de mi parte. Tenía versiones conflictivas de com.android.tools.build:gradle:1.1.2 y 1.1.1 dentro de dos archivos gradle.build diferentes.

app / gradle.build

dependencies { ... compile ''com.android.tools.build:gradle:1.1.2'' ... }

gradle.build de nivel superior

dependencies { classpath ''com.android.tools.build:gradle:1.1.0'' }

gradle.build la línea en el archivo gradle.build mi proyecto, ejecuté gradlew clean desde la línea de comandos, reinicié Android Studio y luego el orden se restauró en el universo.