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时出错_Android_Facebook_Exception - Fatal编程技术网

Android 注销Facebook时出错

Android 注销Facebook时出错,android,facebook,exception,Android,Facebook,Exception,我已经在我的应用程序中集成了Facebook,它在登录时运行良好,但当我尝试注销时,我遇到了许多无法解决的错误。在stack overflow(,)中也有类似的问题,但这篇文章的解决方案对我来说并不合适。 这是我的密码: public class Main extends Activity { DrawerLayout drawerlayout; ListView LVdrawer; ImageView toplogo; View rL; Facebook

我已经在我的应用程序中集成了Facebook,它在登录时运行良好,但当我尝试注销时,我遇到了许多无法解决的错误。在stack overflow(,)中也有类似的问题,但这篇文章的解决方案对我来说并不合适。 这是我的密码:

public class Main extends Activity {
    DrawerLayout drawerlayout;
    ListView LVdrawer;
    ImageView toplogo;
    View rL;
    Facebook fb;
    Handler handler;

    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.navigation_drawer);
        rL = findViewById(R.id.toplogoaction);
        handler=new Handler();
            drawerlayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        LVdrawer = (ListView) findViewById(R.id.left_drawer);
        LVdrawer.setAdapter(new CustomAdapter(this, 0));
        fb=new Facebook(getString(R.string.APP_ID));
            get();
        LVdrawer.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                                TextView ttt = (TextView) view.findViewById(R.id.detail);
                String s = (String) ttt.getText();
                drawerlayout.closeDrawers();

                switch (s) {
                case "Now":
                    if(fb.isSessionValid()){

                        Runnable runnable=new Runnable() {

                            @Override
                            public void run() {
                                handler.post(new Runnable() {

                                    @Override
                                    public void run() {
                                        // TODO Auto-generated method stub
                                        try {
                                            Toast.makeText(getApplicationContext(), "Loggedout",    Toast.LENGTH_SHORT).show();
                                            fb.logout(getApplicationContext());
                                        } catch (MalformedURLException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        } catch (IOException e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        }
                                    }
                                });
                                // TODO Auto-generated method stub


                            }
                        };

                            new Thread(runnable).start();
                                }
                    break;

                }
            }
        });
    }


    @SuppressWarnings("deprecation")
    private void get() {
        SharedPreferences Logininfo = getSharedPreferences("accesstoken", MODE_PRIVATE);
        if (Logininfo.getString("access_token", null) != null) {
            fb.setAccessToken(Logininfo.getString("access_token", null));
            if (Logininfo.getLong("access_expires", 0) != 0)
                fb.setAccessExpires(Logininfo.getLong("access_expires", 0));
        }

    }


 }
使用AsyncTask后更新(Logcat):

09-15 16:42:11.022: D/Facebook-Util(14618): GET URL: https://api.facebook.com/restserver.php?access_token=CAAMKZCWmSwAABAC5ZB3hbry1FLMNdsKssmaS1OpiUxCK9ZAnn3OCKclKNAJ0DTVaf5M6d9QREeTZAsJWKNFWrt65vH5STZBeW0dL9A1l59xSuuqh1RmZALDgFLIxZBiEsXTGE4bR1pkEFQZBA8DfK81ZAjbe1V34JBddgrr0UxKOYkNDqEJc1WWZB8H9TZCbMZCpZCEk6ESusNzxBldzpVKHZBnNNr&format=json&method=auth.expireSession
09-15 16:42:12.626: W/dalvikvm(14618): threadid=12: thread exiting with uncaught exception (group=0x415ecd40)
09-15 16:42:12.630: E/AndroidRuntime(14618): FATAL EXCEPTION: AsyncTask #1
09-15 16:42:12.630: E/AndroidRuntime(14618): Process: com.example.apeonomy, PID: 14618
09-15 16:42:12.630: E/AndroidRuntime(14618): java.lang.RuntimeException: An error occured while executing doInBackground()
09-15 16:42:12.630: E/AndroidRuntime(14618):    at android.os.AsyncTask$3.done(AsyncTask.java:300)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at java.lang.Thread.run(Thread.java:841)
09-15 16:42:12.630: E/AndroidRuntime(14618): Caused by: java.lang.IllegalArgumentException: Invalid context argument
09-15 16:42:12.630: E/AndroidRuntime(14618):    at android.webkit.CookieSyncManager.createInstance(CookieSyncManager.java:90)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at com.facebook.internal.Utility.clearCookiesForDomain(Utility.java:324)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at com.facebook.internal.Utility.clearFacebookCookies(Utility.java:348)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at com.facebook.Session.closeAndClearTokenInformation(Session.java:801)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at com.facebook.android.Facebook.logoutImpl(Facebook.java:665)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at com.facebook.android.Facebook.logout(Facebook.java:642)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at com.digiapes.apeonomy.Main$myAsy.doInBackground(Main.java:164)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at com.digiapes.apeonomy.Main$myAsy.doInBackground(Main.java:1)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
09-15 16:42:12.630: E/AndroidRuntime(14618):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
09-15 16:42:12.630: E/AndroidRuntime(14618):    ... 4 more

在com.facebook包中的FacebookSDK中创建此类

package com.facebook;

import android.content.Context;

public class Door {
  public static void initializeStaticContext(Context context) {
    Session.initializeStaticContext(context);
  }
}
调用
Door.initializeStaticContext(this.getApplicationContext())在调用注销之前

package com.facebook;

import android.content.Context;

public class Door {
  public static void initializeStaticContext(Context context) {
    Session.initializeStaticContext(context);
  }
}