web-dev-qa-db-fra.com

Facebook Sdk n'a pas été initialisé FacebookSdk.sdkInitialize ()

Hé, je sais que cela a déjà été demandé, mais aucune des solutions ne semble aider. J'utilise le SDK Facebook pour la première fois dans mon application.

Ce que j'ai essayé

J'avais essayé la plupart des choses trouvées sur Internet mais je n'ai rien eu à ce sujet.

Voici mon MainActivity.Java:

 public class MainActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    FacebookSdk.sdkInitialize(getApplicationContext());
   } 
}

Voici mon activité principale.xml:

 <LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:facebook="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical">

 <com.facebook.login.widget.LoginButton
    Android:id="@+id/connectWithFbButton"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_centerInParent="true"
    Android:layout_gravity="center_horizontal"
    Android:text="  connect_with_facebook" /> 
</LinearLayout>

voir mon Logcat :

 05-13 16:30:39.332: E/AndroidRuntime(10264): Caused by: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
25
Tufan

Vous devez utiliser FacebookSdk.sdkInitialize(getApplicationContext());avantsetContentView(R.layout.activity_main); en tant que documentation déclare. Si vous avez besoin d'un exemple complet de connexion à Facebook, cochez celui-ci .

45

Problème

Lors de l'intégration du SDK Android pour un projet réactif natif, j'avais terminé le Android avec React Native v0.30 + Configuration du projet guide, puis exécuté react-native run-Android et obtenu cet écran:

 enter image description here

J'ai appris que FacebookSdk.sdkInitialize est obsolète. vois ici

Après quelques recherches, je me suis rendu compte que le guide ne contenait pas les étapes permettant d'ajouter l'identifiant d'application Facebook pour mon application.

Solution

  1. Ouvrez le fichier Android/app/src/main/AndroidManifest.xml et regardez dans la balise <application> pour vérifier que cette balise meta-data existe:

    <meta-data Android:name="com.facebook.sdk.ApplicationId"
              Android:value="@string/facebook_app_id"/>
    
  2. Ouvrez le fichier Android/app/src/main/res/values/strings.xml et confirmez qu'il s'agit d'une balise de chaîne "facebook_app_id" avec l'identifiant de votre application comme valeur:

    <string name="facebook_app_id">YOUR_APP_ID_HERE</string>
    
  3. Exécutez react-native run-Android.

Ce sont les étapes qui ont fonctionné pour moi.

9
Beau Smith

Vous n'avez plus besoin d'utiliser FacebookSdk.sdkInitialize. Vérifiez si votre:

<meta-data Android:name="com.facebook.sdk.ApplicationId"
            Android:value="@string/facebook_app_id"/>

est dans la balise <application>.

7

Après avoir vérifié la documentation j'ai trouvé qu'ils demandent à initialiser FacebookSdk dans la méthode Application onCreate(), Méthode.

(Code de capture de la documentation Facebook:} _ 

  public class MyApplication extends Application {
 // Updated your class body:
 @Override
 public void onCreate() {
    super.onCreate();
    // Initialize the SDK before executing any other operations,
    FacebookSdk.sdkInitialize(getApplicationContext());
    AppEventsLogger.activateApp(this);
   }
 }
3
Sayem

Il y a une raison pour laquelle sdkInitialize() est obsolète. 

Accédez à votre fichier manifeste dans le dossier Android et ajoutez ce qui suit

<meta-data Android:name="com.facebook.sdk.ApplicationId"
      Android:value="@string/facebook_app_id"/>

Après cela, ajoutez dans votre fichier strings.xml (res/values ​​/ strings.xml) l'entrée de chaîne:

<string name="facebook_app_id">APP_ID</string>

Fermez votre Metro Builder et reconstruisez votre projet en utilisant react-native run-Android

0
Martin Nowosad

Utilisez Initialise Callback Constructor comme ceci:

    Handler mHandler = new Handler();
            FacebookSdk.InitializeCallback initializeCallback = new FacebookSdk.InitializeCallback() {
                @Override
                public void onInitialized() {

                    mHandler.post(new Runnable() {
                        @Override
                        public void run() {
                            //UI Code Here
                        }
                    });
                }
            };
    //before setContentView()   
 FacebookSdk.sdkInitialize(getActivity().getApplicationContext(),initializeCallback);
0
Jayant Arora