webentwicklung-frage-antwort-db.com.de

Facebook Sdk wurde nicht initialisiert. FacebookSdk.sdkInitialize ()

Hey, ich weiß, dass das schon früher gefragt wurde, aber keine der Lösungen scheint zu helfen. Ich verwende zum ersten Mal das Facebook SDK in meiner Anwendung.

Was ich probiert habe:

Ich hatte die meisten Dinge aus Internet ausprobiert, bekam aber nichts davon.

Hier ist meine MainActivity.Java:

 public class MainActivity extends Activity {

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

Hier ist meine Activitymain.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>

siehe mein 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

Sie müssen FacebookSdk.sdkInitialize(getApplicationContext());vorsetContentView(R.layout.activity_main); verwenden, da Dokumentation out aussagt. Falls Sie ein vollständiges Beispiel für ein Facebook-Login benötigen, geben Sie hier ankreuzen ein.

45

Problem

Bei der Integration von Android SDK für ein reaktives Projekt hatte ich das Android mit React Native v0.30 + Project Configuration guide fertiggestellt und react-native run-Android ausgeführt und dann diesen Bildschirm erhalten:

 enter image description here

Ich habe gelernt, dass FacebookSdk.sdkInitialize veraltet ist. siehe hier

Nach einiger Suche wurde mir klar, dass der Leitfaden nicht die Schritte zum Hinzufügen der Facebook-App-ID für meine App enthielt.

Lösung

  1. Öffnen Sie die Android/app/src/main/AndroidManifest.xml-Datei, und überprüfen Sie das <application>-Tag, um zu bestätigen, dass dieses meta-data-Tag vorhanden ist:

    <meta-data Android:name="com.facebook.sdk.ApplicationId"
              Android:value="@string/facebook_app_id"/>
    
  2. Öffnen Sie die Android/app/src/main/res/values/strings.xml-Datei und vergewissern Sie sich, dass ein String-Tag "facebook_app_id" mit Ihrer App-ID als Wert vorhanden ist:

    <string name="facebook_app_id">YOUR_APP_ID_HERE</string>
    
  3. Führen Sie react-native run-Android aus.

Dies sind die Schritte, die für mich gearbeitet haben.

9
Beau Smith

Sie müssen FacebookSdk.sdkInitialize nicht mehr verwenden. Überprüfen Sie, ob Ihr:

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

ist im <application>-Tag.

Nach der Überprüfung der Dokumentation habe ich festgestellt, dass sie initialisieren FacebookSdk in der Anwendungsklasse onCreate() Method.

Snap-Code von Facebook-Dokument: 

  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

Es gibt einen Grund, warum sdkInitialize() veraltet ist. 

Gehen Sie zu Ihrer Manifestdatei im Android-Ordner und fügen Sie Folgendes hinzu

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

Danach fügen Sie in Ihrer strings.xml-Datei (res/values ​​/ strings.xml) den String-Eintrag an:

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

Schließen Sie Ihren Metro Builder und erstellen Sie ein neues Projekt, indem Sie den native-Android-Lauf ausführen

0
Martin Nowosad

Verwenden Sie Initialize Callback Constructor wie folgt:

    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