Error de inicio de sesión de Android facebook sdk 1118578

Todo funcionaba bien, hasta que quise comprobar qué sucede si el usuario hace clic en el botón Iniciar sesión con Facebook sin conexión a Internet disponible.

Un brindis apareció diciendo:

Error de inicio de sesion. Póngase en contacto con el fabricante de esta aplicación y pídales que comuniquen el problema # 1118578 a Facebook.

En el logcat tengo:

D / Facebook-authorize (2824): Inicio de sesión cancelado por el usuario.

He intentado deshacerse de este brindis y mostrar mi propio mensaje de error en el método onCancel() – pero no puedo encontrar una manera de deshabilitar ese brindis. Cuando habilité WiFi otra vez, el solo signo encendido no trabajó más!

¿Cuál podría ser la causa de esto?

  private void fbLogin() { facebook.authorize(this, new String[] { "email" }, new DialogListener() { @Override public void onComplete(Bundle values) { app.save("fb_token", facebook.getAccessToken()); app.save("fb_expire", facebook.getAccessExpires()); mAsyncRunner.request("me", new meRequestListener()); } @Override public void onFacebookError(FacebookError error) {} @Override public void onError(DialogError e) {} @Override public void onCancel() {} }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); facebook.authorizeCallback(requestCode, resultCode, data); } 

EDITAR:

Para responder a mi propia pregunta, eliminar android:launchMode="singleInstance" Desde el manifiesto de la <activity> resolvió el problema # 1118578.

Sin embargo, necesito el android:launchMode="singleInstance" para el inicio de sesión de Twitter OAuth, ya que el navegador pasa los datos a la actividad a través de la nueva intención. Si no android:launchMode="singleInstance" en el manifiesto, se inicia una nueva actividad y no recibe el verificador de OAuth.

¿Hay alguna manera alrededor de esto, para usar Facebook y Twitter inicio de sesión en la misma actividad? La única solución que pienso es usar una actividad ficticia para Twitter4j con singleInstance .

Mi manera de superar esto ha sido cambiando la devolución de llamada en Twitter, de "twitter: // callback" a "http: // localhost / callback" y eliminar el android: launchMode = "singleInstance" manifiesto.

Todavía puedo obtener la respuesta en el WebView (en lugar de en el onResume () como antes):

 yourwebview.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { // your_callback == http://localhost/callback if(url == null || !url.startsWith(your_callback)) return; Uri uri = Uri.parse(url); String ov = uri.getQueryParameter("oauth_verifier"); AccessToken at = null; ... 
  • Inicio de sesión de Facebook en el fragmento en android
  • Deep linking en Android no inicia la aplicación y redirige a Android market market
  • Se encontraron 2 versiones de .jar después de instalar el api de facebook en eclipce. en mi nueva aplicación
  • Configuración de sesión de Android FB API 3.0 con fragmentos
  • Com.facebook.FacebookException: Se ha intentado utilizar una sesión que no estaba abierta
  • Android Facebook inicio de sesión único - múltiples hashes clave posible?
  • Facebook "Messenger" tiene un SMS Broadcast Receiver que tiene la máxima prioridad después de reiniciar
  • Cómo escribir prueba funcional automatizada con Facebook SDK en la aplicación de Android?
  • Abrir la página de facebook desde la aplicación android (en la versión de facebook> v11)
  • Android Studio - No se puede abrir el archivo PNG
  • Phonegap + complemento de Facebook con AngularJS
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.