Facebook Sdk Has Not Been Initialized FacebookSdk.sdkInitialize()

给你一囗甜甜゛ 提交于 2019-11-26 22:49:43

问题


Hey I know this was asked before, but none of the solutions seem to help. I'm using first time Facebook SDK in my application.

What I've tried:

I had tried most of the things found on Internet but did not get anything regarding this.

Here is my MainActivity.java:

 public class MainActivity extends Activity {

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

Here is My 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>

see my 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.

回答1:


You have to use FacebookSdk.sdkInitialize(getApplicationContext()); before setContentView(R.layout.activity_main); as documentation states out. In case you need a complete facebook login example, check this one here.




回答2:


Problem

While integrating Android SDK for a react-native project, I had finished the Android with React Native v0.30+ Project Configuration guide, and ran react-native run-android and then got this screen:

I learned that FacebookSdk.sdkInitialize is deprecated. see here

After some searching, I realized that the guide did not contain the steps to add the Facebook App ID for my app.

Solution

  1. Open android/app/src/main/AndroidManifest.xml file and look in the <application> tag to confirm that this meta-data tag exists:

    <meta-data android:name="com.facebook.sdk.ApplicationId"
              android:value="@string/facebook_app_id"/>
    
  2. Open android/app/src/main/res/values/strings.xml file and confirm that this there is a "facebook_app_id" string tag with your app id as the value:

    <string name="facebook_app_id">YOUR_APP_ID_HERE</string>
    
  3. Run react-native run-android.

These are the steps that worked for me.




回答3:


You don't need to use FacebookSdk.sdkInitialize anymore. Check if your:

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

is inside <application> tag.




回答4:


After checking the documentation I found that they are asking to initialize FacebookSdk in Application class onCreate() Method.

Snap code from Facebook doc:

  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);
   }
 }



回答5:


There is a reason why sdkInitialize() is deprecated.

Go to your manifest file within the android folder and add following

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

After that append in your strings.xml file (res/values/strings.xml) the string entry:

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

Close your Metro Builder and rebuild your Project using react-native run-android




回答6:


Use Initialise Callback Constructor like this:

    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);



回答7:


Follow only 2 Step and your Facebook Sdk iw working in React Native

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

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

Don't Need this b'coz Its Deprecated Now

  FacebookSdk.sdkInitialize(getApplicationContext());


来源:https://stackoverflow.com/questions/30213369/facebook-sdk-has-not-been-initialized-facebooksdk-sdkinitialize

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!