La aplicación se bloquea después del primer inicio de sesión en Facebook

A veces (no muy frecuentemente) mi aplicación androide se bloquea después de iniciar sesión por primera vez en Facebook con Facebook Login (Facebook SDK versión 3.5).

Estoy recibiendo la excepción:

java.lang.RuntimeException: Unable to resume activity {my.app.package/com.facebook.LoginActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=64206, result=0, data=null} to activity {my.app.package/com.facebook.LoginActivity}: java.lang.NullPointerException 

Con 2 excepciones de raíz diferentes:

A veces con:

 java.lang.NullPointerException at com.facebook.AuthorizationClient.startOrContinueAuth(AuthorizationClient.java:135) 

Y aveces:

 Caused by: java.lang.NullPointerException at com.facebook.AuthorizationClient.logAuthorizationMethodComplete(AuthorizationClient.java:519) 

En la mayoría de los casos, mi aplicación funciona bien.

¿Alguna idea de lo que puede causar este problema?

EDITAR:

Mi facebook sdk conf en manifiesto:

 <activity android:name="com.facebook.LoginActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/applicationId" /> 

Código de actividad:

 public class MainActivity extends FragmentActivity { .... @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initSession(savedInstanceState); ... } private void initSession(Bundle savedInstanceState) { Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS); Session session = Session.getActiveSession(); if (session == null) { if (savedInstanceState != null) { session = Session.restoreSession(this, null, statusCallback, savedInstanceState); } if (session == null) { session = new Session(this); } Session.setActiveSession(session); if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) { session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback)); } } } @Override public void onStart() { super.onStart(); Session session = Session.getActiveSession(); if (session != null) { session.addCallback(statusCallback); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session session = Session.getActiveSession(); if (session != null) { session.onActivityResult(this, requestCode, resultCode, data); } } @Override public void onStop() { super.onStop(); Session session = Session.getActiveSession(); if (session != null) { session.removeCallback(statusCallback); } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); Session session = Session.getActiveSession(); Session.saveSession(session, outState); } ... 

}

También recibí este error con la versión anterior de Facebook SDK. Tengo el último cliente androide de Fb. ¿Alguna ayuda?

Facebook acaba de lanzar v3.5.1 de su SDK de Android ayer que aborda sus problemas. Su registro de cambios no da mucha información sobre lo que salió mal, pero la gente ha estado reportando este error y dijeron que se arreglaría en una versión posterior (fuente) . Pero de todos modos, mirando las diferencias entre v3.5 y v3.5.1 parecen tener código fijo alrededor de las líneas 135 y 519. Echa un vistazo a la lista de cambios en la lista completa. Probablemente sea una buena idea no actualizar a una versión significativa de Facebook hasta que publiquen su primer parche.

Tengo el mismo problema hoy. Parece que Facebook SDK 3.5 puede no ser compatible con los antiguos clientes de Facebook como Facebook 2.1. He actualizado el cliente de Facebook a la última versión y luego funciona.

  09-13 17:50:43.592 11372.11372 Bundle W Key com.facebook.platform.protocol.PROTOCOL_VERSION expected String but value was a java.lang.Integer. The default value <null> was returned. 09-13 17:50:43.602 11372.11372 Bundle W Attempt to cast generated internal exception: 09-13 17:50:43.602 11372.11372 Bundle W java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String 09-13 17:50:43.602 11372.11372 Bundle W at android.os.Bundle.getString(Bundle.java:1085) 09-13 17:50:43.602 11372.11372 Bundle W at android.content.Intent.getStringExtra(Intent.java:4826) 09-13 17:50:43.602 11372.11372 Bundle W at com.facebook.AuthorizationClient$KatanaLoginDialogAuthHandler.tryAuthorize(AuthorizationClient.java:821) 09-13 17:50:43.602 11372.11372 Bundle W at com.facebook.AuthorizationClient.tryCurrentHandler(AuthorizationClient.java:272) 09-13 17:50:43.602 11372.11372 Bundle W at com.facebook.AuthorizationClient.tryNextHandler(AuthorizationClient.java:238) 09-13 17:50:43.602 11372.11372 Bundle W at com.facebook.AuthorizationClient.authorize(AuthorizationClient.java:161) 09-13 17:50:43.602 11372.11372 Bundle W at com.facebook.AuthorizationClient.startOrContinueAuth(AuthorizationClient.java:142) 09-13 17:50:43.602 11372.11372 Bundle W at com.facebook.LoginActivity.onResume(LoginActivity.java:117) 09-13 17:50:43.602 11372.11372 Bundle W at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1282) 09-13 17:50:43.602 11372.11372 Bundle W at android.app.Activity.performResume(Activity.java:5287) 09-13 17:50:43.602 11372.11372 Bundle W at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3211) 09-13 17:50:43.602 11372.11372 Bundle W at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3266) 09-13 17:50:43.602 11372.11372 Bundle W at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2579) 09-13 17:50:43.602 11372.11372 Bundle W at android.app.ActivityThread.access$600(ActivityThread.java:162) 09-13 17:50:43.602 11372.11372 Bundle W at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1413) 09-13 17:50:43.602 11372.11372 Bundle W at android.os.Handler.dispatchMessage(Handler.java:99) 09-13 17:50:43.602 11372.11372 Bundle W at android.os.Looper.loop(Looper.java:158) 09-13 17:50:43.602 11372.11372 Bundle W at android.app.ActivityThread.main(ActivityThread.java:5789) 09-13 17:50:43.602 11372.11372 Bundle W at java.lang.reflect.Method.invokeNative(Native Method) 09-13 17:50:43.602 11372.11372 Bundle W at java.lang.reflect.Method.invoke(Method.java:525) 09-13 17:50:43.602 11372.11372 Bundle W at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 09-13 17:50:43.602 11372.11372 Bundle W at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843) 09-13 17:50:43.602 11372.11372 Bundle W at dalvik.system.NativeStart.main(Native Method) 09-13 17:50:43.803 11372.11372 AndroidRuntime E FATAL EXCEPTION: main 09-13 17:50:43.803 11372.11372 AndroidRuntime E java.lang.RuntimeException: Unable to resume activity {com.mycomp.myapp/com.facebook.LoginActivity}: java.lang.NullPointe rException 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3228) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3266) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2579) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4258) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.ActivityThread.access$700(ActivityThread.java:162) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1419) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.os.Handler.dispatchMessage(Handler.java:99) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.os.Looper.loop(Looper.java:158) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.ActivityThread.main(ActivityThread.java:5789) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at java.lang.reflect.Method.invokeNative(Native Method) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at java.lang.reflect.Method.invoke(Method.java:525) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at dalvik.system.NativeStart.main(Native Method) 09-13 17:50:43.803 11372.11372 AndroidRuntime E Caused by: java.lang.NullPointerException 09-13 17:50:43.803 11372.11372 AndroidRuntime E at com.facebook.AuthorizationClient.startOrContinueAuth(AuthorizationClient.java:135) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at com.facebook.LoginActivity.onResume(LoginActivity.java:117) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1282) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.Activity.performResume(Activity.java:5287) 09-13 17:50:43.803 11372.11372 AndroidRuntime E at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3211) 09-13 17:50:43.803 11372.11372 AndroidRuntime E ... 13 more 

Recientemente, tengo el mismo problema, sin embargo, actualizar el sdk de facebook a la versión 3.5.2 de https://github.com/facebook/facebook-android-sdk y cualquier problema sobre loggining se han resuelto.

  • Parse SDK Android - API de gráficos de Facebook v2.0
  • Recuperar foto de perfil con Facebook SDK 3.0 para Android
  • Android: ¿Cuál es la clase de diálogo compartido en Facebook SDK 4.x
  • Error de Facebook: permitir clave: configurar los hashes de su clave de aplicación en dev.facebook android
  • Cómo utilizar el Facebook Graph Api Cursor basado en la paginación
  • Error al recuperar el correo electrónico y la ubicación de Facebook Request in Android
  • Marcador de Facebook Las llamadas de la API de Android no muestran puntuaciones altas en Timeline / ticker
  • Facebook api versión usada en facebook android sdk
  • No se puede obtener "cuenta" en los campos "me gusta" y "comentarios" usando el acceso_token de mi propia aplicación registrada
  • ¿Por qué mi solicitud de AppInviteDialog de Facebook no está siendo recibida por el amigo de destino?
  • ¿Cómo comprobar en el diálogo de compartir con facebook apiv2.2?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.