tutorial studio loginbutton invalid hashes example espaƱol clave android react-native facebook-login android-facebook fbsdk

android - studio - Facebook Sdk no se ha inicializado FacebookSdk.sdkInitialize()



key hashes android studio (5)

Problema

Mientras integraba Android SDK para un proyecto de reacción nativa, terminé el Android con React Native v0.30 + guía de configuración del proyecto y ejecuté react-native run-android y luego obtuve esta pantalla:

Me enteré de que FacebookSdk.sdkInitialize está en desuso. mira aquí

Después de algunas búsquedas, me di cuenta de que la guía no contenía los pasos para agregar el ID de la aplicación de Facebook para mi aplicación.

Solución

  1. Abra el archivo android/app/src/main/AndroidManifest.xml y busque en la etiqueta <application> para confirmar que exista esta etiqueta de meta-data :

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

  2. Abra el archivo android/app/src/main/res/values/strings.xml y confirme que haya una etiqueta de cadena "facebook_app_id" con el ID de su aplicación como valor:

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

  3. Ejecuta react-native run-android .

Estos son los pasos que funcionaron para mí.

Hola, sé que esto se preguntó antes, pero ninguna de las soluciones parece ayudar. Estoy usando mi SDK de Facebook por primera vez en mi aplicación.

Lo que he intentado:

Probé la mayoría de las cosas que encontré en Internet pero no obtuve nada al respecto.

Aquí está mi MainActivity.java:

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

Aquí está Mi 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>

ver mi 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.


Después de revisar la documentation encontré que están pidiendo inicializar FacebookSdk en el onCreate() clase de aplicación onCreate() .

Ajustar el código del documento de 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); } }


Tienes que usar FacebookSdk.sdkInitialize(getApplicationContext()); antes de setContentView(R.layout.activity_main); como dice la documentation . En caso de que necesite un ejemplo completo de inicio de sesión en Facebook, marque este aquí .


Use Initialise Callback Constructor como este:

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


Ya no es necesario que use FacebookSdk.sdkInitialize. Verifique si su:

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

está dentro de la etiqueta <application> .