1

FacebookのSDKforAndroid(今日の最新バージョン)を使用しています。認証用のコードは次のとおりです。

prefs = PreferenceManager.getDefaultSharedPreferences(this);
facebook = new Facebook(FACEBOOK_APP_ID);
String fbAccessToken = prefs.getString("fb_access_token", null);
long fbAccessExpires = prefs.getLong("fb_access_expires", 0);
if (fbAccessToken != null) {
    facebook.setAccessToken(fbAccessToken);
}
if (fbAccessExpires != 0) {
    facebook.setAccessExpires(fbAccessExpires);
}
if (!facebook.isSessionValid()) {
    facebook.authorize(this, new String[] { "friends_birthday" }, new DialogListener() {
        public void onComplete(Bundle values) {
            SharedPreferences.Editor prefEditor = prefs.edit();
            prefEditor.putString("fb_access_token", facebook.getAccessToken());
            prefEditor.putLong("fb_access_expires", facebook.getAccessExpires());
            prefEditor.commit();
            // do some graph requests
        }
        public void onFacebookError(FacebookError error) {
        }
        public void onError(DialogError e) {
        }
        public void onCancel() {
        }
    });
}
else {
    // do some graph requests
}

残念ながら、Facebookアプリはそのリクエストに応じて開き、「読み込み中...」と表示されます。数秒後、何の結果もなく消えてしまいます。

LogCatでは、次の例外を読み取ることができます。

12-11 21:04:34.597: E/System(29584): Uncaught exception thrown by finalizer
12-11 21:04:34.613: E/System(29584): java.lang.IllegalStateException: Binder has been finalized!
12-11 21:04:34.613: E/System(29584):    at android.os.BinderProxy.transact(Native Method)
12-11 21:04:34.613: E/System(29584):    at android.database.BulkCursorProxy.close(BulkCursorNative.java:288)
12-11 21:04:34.613: E/System(29584):    at android.database.BulkCursorToCursorAdaptor.close(BulkCursorToCursorAdaptor.java:133)
12-11 21:04:34.613: E/System(29584):    at android.database.CursorWrapper.close(CursorWrapper.java:49)
12-11 21:04:34.613: E/System(29584):    at android.content.ContentResolver$CursorWrapperInner.close(ContentResolver.java:1591)
12-11 21:04:34.613: E/System(29584):    at android.content.ContentResolver$CursorWrapperInner.finalize(ContentResolver.java:1604)
12-11 21:04:34.613: E/System(29584):    at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:182)
12-11 21:04:34.613: E/System(29584):    at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168)
12-11 21:04:34.613: E/System(29584):    at java.lang.Thread.run(Thread.java:856)

これはFacebookSDKの一般的な問題ですか?私はそうは思いません、それについては何も見つかりませんでした。この問題の原因は何ですか?

4

1 に答える 1

3

https://developers.facebook.com/androidで入手できる SDK 3.0 (リリースしたばかり) の最終バージョンを使用していることを確認する必要があります。

また、Java 1.6 とクリーンなプロジェクト/ワークスペースがあることを確認してください。

そのサイトのドキュメントで説明されているように、セッション処理とログインには最新のパターンを使用することをお勧めします。

于 2012-12-14T22:19:19.817 に答える