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
Abra el archivo
android/app/src/main/AndroidManifest.xml
y busque en la etiqueta<application>
para confirmar que exista esta etiqueta demeta-data
:<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
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>
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>
.