instalar - integrar sdk facebook en android
Accidentes de ejemplos oficiales de Facebook(GraphApiSample) (2)
Intenta establecer app_id
en strings.xml
o strings.xml
. También se menciona en el tutorial de inicio aquí: Documentación
Un paso adicional: crear un metadato con el nombre com.facebook.sdk.ApplicationId
y el valor @string/app_id
en AndroidManifest.xml
Empecé a trabajar con facebook-android-sdk-3.5.2.
El proyecto SDK también contiene varios ejemplos de muestra para usar la API como:
- HelloFacebookSample: una actividad simple que puede iniciar sesión y hacer cosas, funciona muy bien.
A continuación, quise probar el siguiente ejemplo llamado:
- GraphApiSample, con el que tuve un problema.
Después de iniciar esta aplicación, obtuve este error: (Logcat):
11-11 15:22:40.008: E/AndroidRuntime(14048): FATAL EXCEPTION: main
11-11 15:22:40.008: E/AndroidRuntime(14048): java.lang.RuntimeException: Unable to resume activity {com.facebook.samples.graphapi/com.facebook.samples.graphapi.GraphApiSampleActivity}: java.lang.IllegalArgumentException: Both context and applicationId must be non-null
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2621)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2649)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.app.ActivityThread.access$700(ActivityThread.java:134)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1218)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.os.Handler.dispatchMessage(Handler.java:99)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.os.Looper.loop(Looper.java:137)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.app.ActivityThread.main(ActivityThread.java:4867)
11-11 15:22:40.008: E/AndroidRuntime(14048): at java.lang.reflect.Method.invokeNative(Native Method)
11-11 15:22:40.008: E/AndroidRuntime(14048): at java.lang.reflect.Method.invoke(Method.java:511)
11-11 15:22:40.008: E/AndroidRuntime(14048): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
11-11 15:22:40.008: E/AndroidRuntime(14048): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
11-11 15:22:40.008: E/AndroidRuntime(14048): at dalvik.system.NativeStart.main(Native Method)
11-11 15:22:40.008: E/AndroidRuntime(14048): Caused by: java.lang.IllegalArgumentException: Both context and applicationId must be non-null
11-11 15:22:40.008: E/AndroidRuntime(14048): at com.facebook.AppEventsLogger.activateApp(AppEventsLogger.java:308)
11-11 15:22:40.008: E/AndroidRuntime(14048): at com.facebook.AppEventsLogger.activateApp(AppEventsLogger.java:292)
11-11 15:22:40.008: E/AndroidRuntime(14048): at com.facebook.samples.graphapi.GraphApiSampleActivity.onResume(GraphApiSampleActivity.java:76)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1199)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.app.Activity.performResume(Activity.java:5121)
11-11 15:22:40.008: E/AndroidRuntime(14048): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2611)
Bueno ya veo:
Causado por: java.lang.IllegalArgumentException: Tanto el contexto como el applicationId deben ser no nulos
De acuerdo, pero no cambié nada en el código. Debería ser trabajo, ¿verdad?
Lo intenté:
Eliminar proyecto e importar
Eliminar proyecto y agregar un nuevo proyecto de Android desde el código existente
Limpia mi proyecto
Eliminar la dependencia de la biblioteca de Facebook sdk y volver a importar, luego limpiar de nuevo.
Mismo resultado después de todo esto.
Por favor, si alguien está familiarizado con este problema. ayuadame.
EDITAR:
Por alguna razón, esta muestra oficial de Facebook no contiene la aplicación. Gracias por la sugerencia!
Si no tiene (o desea) el ID de la aplicación de Facebook almacenado en strings.xml (por ejemplo, tal vez reciba la id de la aplicación de Facebook de forma dinámica a través de Internet), puede llamar a este método para activar ... AppEventsLogger.activateApp(Context context, String facebookAppId)
Debe llamar esto en el método onResume()
de sus actividades:
@Override protected void onResume() { super.onResume(); AppEventsLogger.activateApp(...); }