2

SSOを使用してFacebookにログインするとクラッシュが発生しました。似たようなフォーラムのいずれにもレポートは見つかりませんでした。

Facebookサイトでユーザーパスワードを変更すると、約15秒以内にAndroidFacebookクライアントが通知バーを介して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

もう1つのヒントは、Facebookアプリケーション内にウィンドウリークの致命的でない例外があることです。アクティビティcom.facebook.katana.ProxyAuthがウィンドウリークしcom.android.internal.policy.impl.PhoneWindow$DecorView@406eecf0 that was originally added here ました誰かが同様のクラッシュに遭遇しましたか?グーグルが見つけることができる限り、誰もそれらのクラッシュを参照しないことに私は本当に困惑しています。これを実装するときは、ハックブックの例に従いました。何が原因なのか、私にはまったくわかりません。

4

1 に答える 1

5

パスワードの変更とは関係ないかもしれませんが、削除します:

AndroidManifest.xml の android:launchMode="singleInstance"

同様のバグを解決しました(com.facebook.katana/com.facebook.katana.ProxyAuthのjava.lang.NullPointerExceptionも)

于 2012-05-14T22:01:01.763 に答える