104 votes

utiliser le sdk de facebook dans Android studio

Je suis SDK Facebook pour Android avec Android Studio . Lorsque je lance mon application, je reçois l'avertissement suivant.

Gradle: module 'facebook' won't be compiled. Unfortunately you can't have non-Gradle Java module and Android-Gradle module in one project.

Comment dois-je résoudre ce problème ?

J'ai essayé la réponse de @Scott Barta et j'obtiens le message d'erreur suivant.

    A problem occurred configuring project ':App'.
> Failed to notify project evaluation listener.
   > A problem occurred configuring project ':libraries:facebook'.
      > Failed to notify project evaluation listener.
         > Could not resolve all dependencies for configuration ':libraries:facebook:_DebugCompile'.
            > Could not find any version that matches com.android.support:support-v4:+.
              Required by:
                  MyApplication2.libraries:facebook:unspecified

0 votes

Le référentiel de support Android est-il installé dans votre gestionnaire de SDK pour le SDK que vous utilisez ?

0 votes

Non. C'est obligatoire ?

0 votes

Oui. C'est le message d'erreur que vous voyez. Je sais que ce n'est pas intuitif ; l'améliorer est sur notre liste. Je vais mettre à jour ma réponse pour refléter la nécessité de cette amélioration.

250voto

Scott Barta Points 18979

NOTE

Pour Android Studio 0.5.5 et plus, et avec les dernières versions du SDK Facebook, ce processus est beaucoup plus simple que ce qui est documenté ci-dessous (qui a été écrit pour les versions antérieures des deux). Si vous utilisez la dernière version, tout ce que vous avez à faire est ceci :

  1. Téléchargez le SDK de Facebook à partir de https://developers.facebook.com/docs/Android/
  2. Dézipper l'archive
  3. Dans Android Studio 0.5.5 ou plus, choisissez "Importer un module" dans le menu Fichier.
  4. Dans l'assistant, définissez le chemin source du module à importer comme étant le répertoire "facebook" à l'intérieur de l'archive décompressée. (Remarque : si vous choisissez l'ensemble du dossier parent, vous obtiendrez non seulement la bibliothèque elle-même, mais aussi toutes les applications d'exemple, chacune en tant que module distinct. Cela peut fonctionner mais ce n'est probablement pas ce que vous voulez).
  5. Structure ouverte du projet par Ctrl + Shift + Alt + S puis sélectionnez l'onglet Dépendances. Cliquez sur + et sélectionnez Dépendance de module. Dans la nouvelle fenêtre qui s'ouvre, sélectionnez :facebook.
  6. Vous devriez être prêt à partir.

Instructions pour les anciennes versions d'Android Studio et de Facebook SDK

Ceci s'applique à Android Studio 0.5.4 et aux versions antérieures, et a le plus de sens pour les versions du SDK de Facebook avant que Facebook ne propose des fichiers de construction Gradle pour la distribution. Je ne sais pas dans quelle version du SDK ils ont fait ce changement.

Les instructions de Facebook dans la rubrique "Importer le SDK dans un projet Android Studio" sur leur site Web. https://developers.facebook.com/docs/getting-started/facebook-sdk-for-Android-using-Android-studio/3.0/ sont erronées pour les projets basés sur Gradle (c'est-à-dire que votre projet a été construit à l'aide de l'assistant Nouveau projet d'Android Studio et/ou possède un fichier de type build.gradle pour votre module d'application). Suivez plutôt ces instructions :

  1. Créer un libraries sous le répertoire principal de votre projet. Par exemple, si votre projet est HelloWorldProject, vous devez créer a HelloWorldProject/libraries dossier.

  2. Maintenant, copiez l'ensemble du facebook de l'installation du SDK dans le répertoire libraries que vous venez de créer.

  3. Supprimer le libs dans le dossier facebook répertoire. Si vous voulez, supprimez le project.properties , build.xml , .classpath et .project . également. Vous n'en avez pas besoin.

  4. Créer un build.gradle dans le fichier facebook avec le contenu suivant :

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.6.+'
        }
    }
    
    apply plugin: 'android-library'
    
    dependencies {
        compile 'com.android.support:support-v4:+'
    }
    
    android {
        compileSdkVersion 17
        buildToolsVersion "19.0.0"
    
        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 16
        }
    
        sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                java.srcDirs = ['src']
                resources.srcDirs = ['src']
                res.srcDirs = ['res']
            }
        }
    }

    Notez que, selon le moment où vous suivez ces instructions par rapport à celui où ce document a été rédigé, vous devrez peut-être ajuster la valeur de l'option classpath 'com.android.tools.build:gradle:0.6.+' pour référencer une version plus récente du plugin Gradle. Bientôt, nous aurons besoin de la version 0.7 ou plus. Essayez-le, et si vous obtenez une erreur indiquant qu'une version plus récente du plugin Gradle est requise, c'est la ligne que vous devez modifier.

  5. Assurez-vous que le Bibliothèque de support Android dans votre gestionnaire de SDK est installé.

  6. Modifiez votre settings.gradle dans le répertoire principal de votre application et ajoutez cette ligne :

    include ':libraries:facebook'
  7. Si votre projet est déjà ouvert dans Android Studio, cliquez sur le bouton "Sync Project with Gradle Files" dans la barre d'outils. Une fois que c'est fait, la fenêtre facebook devrait apparaître. enter image description here

  8. Ouvrez la boîte de dialogue Structure du projet. Choisissez Modules dans la liste de gauche de gauche, cliquez sur le module de votre application, cliquez sur l'onglet Dépendances et cliquez sur le bouton + pour ajouter une nouvelle dépendance. enter image description here

  9. Choisissez "Dépendance du module". Une boîte de dialogue apparaîtra avec une liste de modules à choisir. modules à choisir ; sélectionnez ":libraries:facebook". enter image description here

  10. Cliquez sur OK dans toutes les boîtes de dialogue. Android Studio va automatiquement resynchroniser votre projet (sans qu'il soit nécessaire de cliquer à nouveau sur le bouton "Synchroniser le projet avec les fichiers Gradle") et et récupérera la nouvelle dépendance. Vous devriez être prêt à partir.

1 votes

/libraries/facebook/build.gradle me donne quelques erreurs. "Impossible de résoudre le symbole compileSdkVersion". La même chose avec le symbole compileSdkVersion, manifest et autres ...

0 votes

Puis-je ajouter fb-sdk à une application Android ou je peux seulement ajouter sdk à une nouvelle application Android ?

0 votes

Si vous rencontrez des problèmes, veuillez les poster dans une question distincte et inclure les détails de vos messages d'erreur et de vos fichiers de compilation.

108voto

SBerg413 Points 6605

Facebook a en effet ajouté le SDK aux dépôts Maven Central. Pour configurer votre projet en utilisant l'instance du dépôt Maven, vous devrez faire 2 choses :

  1. Dans vos projets build.gradle de haut niveau ajoutez les dépôts Maven Central. Le mien ressemble à ceci :

    repositories {
        jcenter()       // This is the default repo
        mavenCentral()  //  This is the Maven Central repo
    }
  2. Dans le niveau d'application build.grade ajoutez la dépendance sdk de Facebook :

    dependencies {
    
        compile 'com.facebook.android:facebook-android-sdk:4.5.0' // Adjust the version accordingly
        // All your other dependencies.
    }

Vous pouvez également régler la version spécifique du SDK Facebook. Pour une liste des versions disponibles dans le dépôt maven cliquez sur ce lien.

1 votes

Cela fonctionne pour moi. C'est vraiment la meilleure façon d'ajouter l'api facebook sur Android Studio. Merci

1 votes

C'est la méthode indiquée dans la documentation de Facebook, mais elle ne fonctionne pas. J'ai Android studio 1.0 et sdk v 3.x.

1 votes

Notez que vous devez spécifier un numéro de version exact ou au moins une version majeure, comme 3.23.+. Facebook n'a pas peur de faire évoluer l'API rapidement et d'apporter des modifications importantes, ce qui entraînera des échecs de construction et des constructions non reproductibles.

17voto

Romain Points 71

Facebook publie le SDK sur maven central :

Il suffit d'ajouter :

repositories {
    jcenter()       // IntelliJ main repo.
}

dependencies {
    compile 'com.facebook.android:facebook-android-sdk:+'
}

2 votes

Ce n'est pas correct, vous avez besoin de mavenCentral() dans la section repositories.

1 votes

Jcenter inclut mavenCentral

12voto

user2129635 Points 141

La solution de Scott Barta a fonctionné pour moi, sauf que j'ai dû les ajouter aux dépendances du fichier build.gradle de mon projet principal :

compile files('libs/android-support-v4.jar')
compile project(':libraries:facebook')

Il convient également de mentionner que vous devez vous en assurer :

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.1"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 18
    }

sont les mêmes dans les deux fichiers build.gradle... Une fois que j'ai fait cela, tout a fonctionné comme sur des roulettes.

0 votes

J'obtiens une erreur lors de la construction : Le projet avec le chemin 'libraries:facebook' n'a pas pu être trouvé dans le projet Root ... Une idée ? (J'ai bien sûr ajouté le dossier selon la solution de Scott Bs, même si je n'ai PAS de fichier settings.gradle ! (Projet créé dans Android Studio)

1 votes

La ligne de compilation du projet doit correspondre à la structure du répertoire de votre projet. :libraries:facebook implique que votre bibliothèque facebook se trouve dans un dossier appelé libraries dans votre répertoire racine.

6voto

Pepijn Points 336

En utilisant git, vous pouvez incorporer la dernière version de facebook-Android-sdk avec facilité.

  • Ajouter facebook-Android-sdk comme sous-module : git submodule add https://github.com/facebook/facebook-android-sdk.git
  • Ajouter le sdk comme projet gradle : éditer settings.gradle et ajouter la ligne : include ':facebook-android-sdk:facebook'
  • Ajouter le sdk comme dépendance du module : éditer build.gradle et ajouter dans le bloc dépendances : compile project(':facebook-android-sdk:facebook')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X