Подтвердить что ты не робот

Facebook Sdk не был инициализирован FacebookSdk.sdkInitialize()

Эй, я знаю, что это было задано раньше, но ни одно из решений, похоже, не помогает. Я использую первый SDK Facebook в своем приложении.

Что я пробовал:

Я пробовал большинство вещей, найденных в Интернет, но ничего не понял.

Вот мой MainActivity.java:

 public class MainActivity extends Activity {

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

Вот мой 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>

см. мой 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.
4b9b3361

Ответ 1

Вы должны использовать FacebookSdk.sdkInitialize(getApplicationContext()); до setContentView(R.layout.activity_main);, как указано в документации. Если вам нужен полный пример входа в Facebook, проверьте его здесь.

Ответ 2

Проблема

Интегрируя Android SDK для собственного проекта, я закончил Android с React Native v0. 30+ Руководство по настройке проекта, запустил react-native run-android и затем получил этот экран:

Я узнал, что FacebookSdk.sdkInitialize устарела. смотрите здесь

После некоторых поисков я понял, что руководство не содержит шагов для добавления идентификатора приложения Facebook для моего приложения.

Решение

  1. Откройте файл android/app/src/main/AndroidManifest.xml и посмотрите в тег <application>, чтобы убедиться, что этот тег meta-data существует:

    <meta-data android:name="com.facebook.sdk.ApplicationId"
              android:value="@string/facebook_app_id"/>
    
  2. Откройте файл android/app/src/main/res/values/strings.xml и подтвердите наличие строкового тега "facebook_app_id" с идентификатором приложения в качестве значения:

    <string name="facebook_app_id">YOUR_APP_ID_HERE</string>
    
  3. Запустите react-native run-android.

Это шаги, которые помогли мне.

Ответ 3

Вам больше не нужно использовать FacebookSdk.sdkInitialize. Проверьте, есть ли у вас:

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

находится внутри тега <application>.

Ответ 4

После проверки документации я обнаружил, что они просят инициализировать FacebookSdk в классе Application onCreate() Method.

Snap-код из 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

Есть причина, по которой sdkInitialize() устарела.

Перейдите к файлу манифеста в папке Android и добавьте следующие

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

После этого добавьте в свой файл strings.xml (res/values /strings.xml) строковую запись:

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

Закройте Metro Builder и перестройте свой проект, используя реактивный run-android

Ответ 6

Используйте Initialize Callback Constructor следующим образом:

    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

Выполните только 2 шага и ваш Facebook Sdk работает в 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>

Не надо, потому что сейчас он устарел

  FacebookSdk.sdkInitialize(getApplicationContext());