我遇到了使用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
另一个提示是,在Facebook应用程序中有一个窗口泄露非致命异常:
活动com.facebook.katana.ProxyAuth已泄露窗口com.android.internal.policy.impl.PhoneWindow$DecorView@406eecf0 that was originally added here
有没有人遇到类似的崩溃?我真的很困惑,没有人提到那些崩溃,就谷歌所能找到的那样。我在实现这个时遵循了hackbook示例。我真的不知道可能导致它的原因。
答案 0 :(得分:5)
可能与密码更改无关,但可以删除:
来自AndroidManifest.xml的android:launchMode =“singleInstance”
为我解决了类似的错误(com.facebook.katana / com.facebook.katana.ProxyAuth中的java.lang.NullPointerException)