2013-01-11 16 views
6

Im przy użyciu FB-android-SDK 3.0. Podczas logowania jednokrotnego, jeśli naciśniesz przycisk Wstecz na stronie logowania na Facebooku (aplikacji FB), generowany jest wyjątek. Tutaj jest stacktrace.Wyjątek po naciśnięciu przycisku na facebooku logowanie

01-11 22:35:07.146: E/AndroidRuntime(13076): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=64206, result=0, data=null} to activity {com.nitinbansal85.android.testfacebook1/com.facebook.LoginActivity}: java.lang.NullPointerException 
01-11 22:35:07.146: E/AndroidRuntime(13076): at android.app.ActivityThread.deliverResults(ActivityThread.java:3386) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3428) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at android.app.ActivityThread.access$2700(ActivityThread.java:125) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1944) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at android.os.Looper.loop(Looper.java:123) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at android.app.ActivityThread.main(ActivityThread.java:4420) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at java.lang.reflect.Method.invokeNative(Native Method) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at java.lang.reflect.Method.invoke(Method.java:521) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:682) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at dalvik.system.NativeStart.main(Native Method) 
01-11 22:35:07.146: E/AndroidRuntime(13076): Caused by: java.lang.NullPointerException 
01-11 22:35:07.146: E/AndroidRuntime(13076): at com.facebook.AuthorizationClient$KatanaProxyAuthHandler.onActivityResult(AuthorizationClient.java:645) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at com.facebook.AuthorizationClient.onActivityResult(AuthorizationClient.java:142) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at com.facebook.LoginActivity.onActivityResult(LoginActivity.java:134) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at android.app.Activity.dispatchActivityResult(Activity.java:3828) 
01-11 22:35:07.146: E/AndroidRuntime(13076): at android.app.ActivityThread.deliverResults(ActivityThread.java:3382) 

mam owinięty kod, który robi SSO w FacebookOperationCanceledException, ale to nie jest wyrzucane.

Czy tu czegoś brakuje?

EDYCJA: Aplikacja ulega awarii!

Odpowiedz

13

Jest to zgłoszone bug: facebook bug report

Oto mój obejście:

String errorMessage = "Login cancelled!"; 
      if(data != null && data.getStringExtra("error") != null) 
      { 
       errorMessage = data.getStringExtra("error"); 
      } 

outcome = Result.createCancelResult(errorMessage); 

Robisz te modyfikacje w AuthorizationClient.java w linii 645

+0

Ohh dzięki @Emil sooo sooo much. Było to bardzo potrzebne :-) –

+0

Bardzo dziękuję za tę odpowiedź, zabawne, bo to nadal istnieje prawie miesiąc później. – Bryan

+0

Ten błąd nadal istnieje, a twoja odpowiedź zapisała ten dzień. Wielkie dzięki. –

4

Ten problem został rozwiązany w facebook-android -sdk-3.0.1. Lepiej go pobrać i używać. Pracował dla mnie.

+0

thnx za powiedzenie ..... :) –

Powiązane problemy