更改Facebook密码后,Facebook客户端崩溃了Facebook SSO登录对话框

Sha*_*eig 2 android facebook single-sign-on

我遇到了使用SSO登录facebook的崩溃.我在任何类似的论坛都找不到任何报告.

当我们在Facebook网站上更改用户密码时,在大约15秒内,android facebook客户端将通过通知栏通知用户facebook身份验证失败.如果用户做出反应并登录,我们的应用程序SSO将毫无问题地获取新令牌.

如果用户更改密码,在用户对Facebook应用程序通知做出反应并使用新密码登录之前启动我们的应用程序facebook请求(如下载朋友列表),我们会收到SSO崩溃,这会错误地通知我们的应用程序用户取消登录.

不知何故,facebook应用程序登录对话框(蓝色对话框)和SSO登录对话框(白色对话框)无法共存.如果它们同时打开,SSO启动了Facebook客户端崩溃的实例,但有以下异常:

04-25 10:40:39.790: E/AndroidRuntime(5991): FATAL EXCEPTION: main
04-25 10:40:39.790: E/AndroidRuntime(5991): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.facebook.katana/com.facebook.katana.ProxyAuth}: java.lang.NullPointerException
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.os.Handler.dispatchMessage(Handler.java:99)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.os.Looper.loop(Looper.java:130)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread.main(ActivityThread.java:3691)
04-25 10:40:39.790: E/AndroidRuntime(5991): at java.lang.reflect.Method.invokeNative(Native Method)
04-25 10:40:39.790: E/AndroidRuntime(5991): at java.lang.reflect.Method.invoke(Method.java:507)
04-25 10:40:39.790: E/AndroidRuntime(5991): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
04-25 10:40:39.790: E/AndroidRuntime(5991): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
04-25 10:40:39.790: E/AndroidRuntime(5991): at dalvik.system.NativeStart.main(Native Method)
04-25 10:40:39.790: E/AndroidRuntime(5991): Caused by: java.lang.NullPointerException
04-25 10:40:39.790: E/AndroidRuntime(5991): at com.facebook.orca.common.util.Base64.c(Base64.java:497)
04-25 10:40:39.790: E/AndroidRuntime(5991): at com.facebook.orca.common.util.Base64.b(Base64.java:459)
04-25 10:40:39.790: E/AndroidRuntime(5991): at com.facebook.katana.ProxyAuth.b(ProxyAuth.java:36)
04-25 10:40:39.790: E/AndroidRuntime(5991): at com.facebook.katana.activity.PlatformDialogActivity.a(PlatformDialogActivity.java:127)
04-25 10:40:39.790: E/AndroidRuntime(5991): at com.facebook.orca.activity.FbFragmentActivity.onCreate(FbFragmentActivity.java:48)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-25 10:40:39.790: E/AndroidRuntime(5991): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
04-25 10:40:39.790: E/AndroidRuntime(5991): ... 11 more
Run Code Online (Sandbox Code Playgroud)

另一个提示是,在facebook应用程序中有一个窗口泄露非致命异常:Activity com.facebook.katana.ProxyAuth泄漏窗口com.android.internal.policy.impl.PhoneWindow$DecorView@406eecf0 that was originally added here 有没有人遇到过类似的崩溃?我真的很困惑,没有人提到那些崩溃,就谷歌所能找到的那样.我在实现这个时遵循了hackbook示例.我真的不知道可能导致它的原因.

小智 5

可能与密码更改无关,但删除:

android:launchMode =来自AndroidManifest.xml的"singleInstance"

为我解决了一个类似的错误(com.facebook.katana/com.facebook.katana.ProxyAuth中也有java.lang.NullPointerException)