Facebook授权不在Android异步任务或线程内工作

Facebook授权不在Android异步任务或线程内工作,android,facebook,android-asynctask,facebook-android-sdk,Android,Facebook,Android Asynctask,Facebook Android Sdk,在Android中与facebook合作。有时,当我尝试在Android中授权Facebook时,我的应用程序正在实时设备中兑现。而不是在emulator中。我使用了Android Facebook SDK。所以我想线程可能会停止这一点。首先,我尝试了异步任务 Activity act=this; private class fbwork extends AsyncTask<Facebook, Integer, String> { @Override protec

在Android中与facebook合作。有时,当我尝试在Android中授权Facebook时,我的应用程序正在实时设备中兑现。而不是在emulator中。我使用了Android Facebook SDK。所以我想线程可能会停止这一点。首先,我尝试了异步任务

Activity act=this;

private class fbwork extends AsyncTask<Facebook, Integer, String>
{

    @Override
    protected String doInBackground(Facebook... para)
    {
        // TODO Auto-generated method stub
        Log.d(tagg, "Entered async");
            if(loginflag==0)
            {
                try
                {
                    para[0].authorize(act, PERMISSIONS, new LoginDialogListener());
                }catch(Exception ex)
                {
                    Log.d(tagg,ex.getMessage());
                }
                Log.d(tagg, tagg.toString());
            }
            else
            {

                try {
                    logout();
                } catch (MalformedURLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }


        return "0";
    }
生成错误:无法在未调用Looper.Prepare()的线程内创建处理程序。

所以尝试了正常的线程方式

public void loginprocesure() throws MalformedURLException, IOException
{
    final Activity ac=this;
    if(loginflag==0)
    {
        new Thread(new Runnable() {

            public void run() {
                // TODO Auto-generated method stub
                facebook.authorize(ac, PERMISSIONS, new LoginDialogListener());
            }
        }).start();

    }
    else
    {

        logout();
    }
}

同样的结果。有没有办法解决这个问题!!!!如何在真实设备中阻止应用程序崩溃。请提供帮助。

Facebook授权使用访问事件线程的方法,因此您不需要在事件线程之外的其他线程中执行此方法


如果在正常事件线程中执行此方法时遇到问题,请指定该问题。

我遇到了相同的问题。您必须尝试将此方法放入循环中

 Looper.prepare();
 new fbwork().execute(facebook);
 Looper.loop();

我也有这个问题。我无法使AsyncTask代码正常工作

所以我最终使用了runOnUiThread。它可以在模拟器上运行,但不能在设备上运行,我使用的是HTC Desire Android SDK 2.2.2。不幸的是,我甚至不能使用Hackbook(Facebook的示例项目)登录Facebook

下面是使用runOnUiThread的代码:

正如我所说,我的应用程序在授权时在真实设备中崩溃了几次,有时不是每次都崩溃。而且它在emulator中也可以正常工作。所以我找不到崩溃的实际问题。你能告诉我Facebook.request(“我/朋友”,bundle)是否也使用任何类型的线程吗?
 Looper.prepare();
 new fbwork().execute(facebook);
 Looper.loop();