Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Facebook';s安卓SDK_Android_Facebook_Facebook Graph Api_Facebook Authentication_Facebook Android Sdk - Fatal编程技术网

Android 使用Facebook';s安卓SDK

Android 使用Facebook';s安卓SDK,android,facebook,facebook-graph-api,facebook-authentication,facebook-android-sdk,Android,Facebook,Facebook Graph Api,Facebook Authentication,Facebook Android Sdk,我正在使用Facebook的Android SDK(截至今天的最新版本)。用于身份验证的代码如下所示: prefs = PreferenceManager.getDefaultSharedPreferences(this); facebook = new Facebook(FACEBOOK_APP_ID); String fbAccessToken = prefs.getString("fb_access_token", null); long fbAccessExpires = prefs.g

我正在使用Facebook的Android SDK(截至今天的最新版本)。用于身份验证的代码如下所示:

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)

这是Facebook SDK的常见问题吗?我不这么认为,我还没有发现任何关于这个的东西。是什么导致了这个问题?

您应该确保使用的是SDK 3.0的最终版本(我们刚刚发布),可在

还要确保您拥有Java1.6和干净的项目/工作区


我建议您使用该站点文档中描述的会话处理和登录的当代模式。

这种例外情况肯定非常奇怪,甚至可能与我们的android sdk无关。您能否尝试运行hackbook示例(如sdk下载的samples文件夹中所示)并验证相同的问题?确保将密钥哈希添加到应用程序仪表板中,因为使用本机SSO时需要这样做。还要确保你的facebook应用程序是最新的。异常看起来与数据库相关。您的应用程序是否在进行FB验证的同时打开或关闭数据库?如果您有整个转储,请检查pid 29584是否与您的应用程序日志相同。很可能这是一个与FacebookSDknow完全无关的程序,我知道我正在使用你最新的SDK(3.0),并且错误不再发生。非常感谢。