Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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 Can';无法从facebook会话注销_Android_Facebook - Fatal编程技术网

Android Can';无法从facebook会话注销

Android Can';无法从facebook会话注销,android,facebook,Android,Facebook,我已经创建了一个facebook集成应用程序。我可以正确登录和注销没有问题,当我登录并关闭应用程序,然后重新打开它,我可以正确注销。但我的问题是,当我从Eclipse登录然后运行应用程序时,我无法注销。它显示错误 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); facebook = new Face

我已经创建了一个facebook集成应用程序。我可以正确登录和注销没有问题,当我登录并关闭应用程序,然后重新打开它,我可以正确注销。但我的问题是,当我从Eclipse登录然后运行应用程序时,我无法注销。它显示错误

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
           facebook = new Facebook(APP_ID);
           mAsyncRunner = new AsyncFacebookRunner(facebook);

        sharePref = getPreferences(MODE_PRIVATE);
        facebook.setAccessToken(sharePref.getString(ACCESS_TOKEN, null));
        facebook.setAccessExpires(sharePref.getLong(EXPIRE_SESSION, 0));

    buttonLogin.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                loginToFacebook();
            }
        });

buttonLogout.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                logoutFacebook();
            }
        });
}

public void loginToFacebook() {


        if (!facebook.isSessionValid()) {
            facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH,
                    new DialogListener() {
                        @Override
                        public void onFacebookError(FacebookError e) {
                        }

                        @Override
                        public void onError(DialogError e) {
                        }

                        @Override
                        public void onComplete(Bundle values) {
                            SharedPreferences.Editor editor = sharePref.edit();
                            editor.putString(ACCESS_TOKEN,
                                    facebook.getAccessToken());
                            editor.putLong(EXPIRE_SESSION,
                                    facebook.getAccessExpires());
                            editor.commit();
                        }

                        @Override
                        public void onCancel() {
                        }
                    });
        } else {
            Toast.makeText(getApplicationContext(), "You Already Login",
                    Toast.LENGTH_SHORT).show();
        }
    }
protected void logoutFacebook() {
        if (facebook.isSessionValid()) {
            mAsyncRunner.logout(this,
                    new RequestListener() {
                        @Override
                        public void onComplete(String response, Object state) {
                            Log.d("Logout from Facebook", response);
                            if (Boolean.parseBoolean(response) == true) {
                                Log.e("Logout from Facebook", "Great");
                            }
                        }

                        @Override
                        public void onIOException(IOException e, Object state) {

                        }

                        @Override
                        public void onFileNotFoundException(
                                FileNotFoundException e, Object state) {
                        }

                        @Override
                        public void onMalformedURLException(
                                MalformedURLException e, Object state) {
                        }

                        @Override
                        public void onFacebookError(FacebookError e,
                                Object state) {
                        }
                    });
        } else {
            Toast.makeText(getApplicationContext(), "Login First",
                    Toast.LENGTH_SHORT).show();
        }
    }
我遇到了这种类型的错误:

E/AndroidRuntime( 6331): FATAL EXCEPTION: Thread-264
E/AndroidRuntime( 6331): java.lang.IllegalArgumentException: Invalid context argument
E/AndroidRuntime( 6331):    at android.webkit.CookieSyncManager.createInstance(CookieSyncManager.java:86)
E/AndroidRuntime( 6331):    at com.facebook.internal.Utility.clearCookiesForDomain(Utility.java:261)
E/AndroidRuntime( 6331):    at com.facebook.internal.Utility.clearFacebookCookies(Utility.java:285)
E/AndroidRuntime( 6331):    at com.facebook.Session.closeAndClearTokenInformation(Session.java:593)
E/AndroidRuntime( 6331):    at com.facebook.android.Facebook.logoutImpl(Facebook.java:698)
E/AndroidRuntime( 6331):    at com.facebook.android.AsyncFacebookRunner$1.run(AsyncFacebookRunner.java:89)
W/ActivityManager( 1202):   Force finishing activity com.facebook.androidhive/.AndroidFacebookConnectActivity
W/WindowManager( 1202): Failure taking screenshot for (246x437) to layer 21020
W/Trace   ( 6331): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6331): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
E/SurfaceFlinger(  786): ro.sf.lcd_density must be defined as a build property
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6331): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 6239): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
W/Trace   ( 1202): Unexpected value from nativeGetEnabledTags: 0
试试这个

从mainactivity中删除以下行

sharePref = getPreferences(MODE_PRIVATE);
        facebook.setAccessToken(sharePref.getString(ACCESS_TOKEN, null));
        facebook.setAccessExpires(sharePref.getLong(EXPIRE_SESSION, 0));
并在登录函数中添加以下行

  mPrefs = getPreferences(MODE_PRIVATE);
            String access_token = mPrefs.getString("access_token", null);
            long expires = mPrefs.getLong("access_expires", 0);

            if (access_token != null) {
                facebook.setAccessToken(access_token);
Toast.makeText(getApplicationContext(), "You Already Login",
                    Toast.LENGTH_SHORT).show();
            }

            if (expires != 0) {
                facebook.setAccessExpires(expires);
Toast.makeText(getApplicationContext(), "You Already Login",
                    Toast.LENGTH_SHORT).show();
            }

这个api是派生的。Facebook已经停止了对Facebook版本<3.0的支持,请转到github,从新的api Facebook 3.0开始final@BirajZalavadia请在此提供任何教程完整步骤Hey抱歉,在我的应用程序中,我正确添加了代码,但我在复制和粘贴中更改了代码..这在我的应用程序中不是问题,但每次都需要登录..我想要当我注销会话后,只有登录正在工作,否则它会显示toast消息“you ready login”我编辑了我的ans check out delete your else语句在该代码中替换我指定的语句,因为access_令牌是您的登录令牌。。。