3

我是 phonegap、android 和 facebook 的新手,我想使用 facebook 添加登录。

我按照 facebook 的 Android 入门指南完成了所有步骤,

得到这个错误:

07-25 09:52:24.470: E/AndroidRuntime(1284): FATAL EXCEPTION: main
07-25 09:52:24.470: E/AndroidRuntime(1284): java.lang.NullPointerException
07-25 09:52:24.470: E/AndroidRuntime(1284):     at org.apache.cordova.facebook.ConnectPlugin$AuthorizeListener.onComplete(ConnectPlugin.java:277)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at com.facebook.android.Facebook.onSessionCallback(Facebook.java:345)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at com.facebook.android.Facebook.access$11(Facebook.java:326)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at com.facebook.android.Facebook$1.call(Facebook.java:304)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at com.facebook.Session$3$1.run(Session.java:1190)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at android.os.Handler.handleCallback(Handler.java:725)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at android.os.Looper.loop(Looper.java:137)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at android.app.ActivityThread.main(ActivityThread.java:5041)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at java.lang.reflect.Method.invokeNative(Native Method)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at java.lang.reflect.Method.invoke(Method.java:511)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-25 09:52:24.470: E/AndroidRuntime(1284):     at dalvik.system.NativeStart.main(Native Method)

任何想法?谢谢..

4

2 回答 2

0

注释掉第 277 行org.apache.cordova.facebook.ConnectPlugin.java

//Log.d(TAG, values.toString());

这只是控制台的日志

于 2013-09-06T14:46:54.987 回答
0

ConnectPlugin.java中,替换:

try {
    JSONObject o = new JSONObject(this.fba.facebook.request("/me"));
    this.fba.userId = o.getString("id");
    this.fba.success(getResponse(), this.fba.callbackId);
} catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

使用以下代码:

Thread t = new Thread(new Runnable() {
    public void run() {
        try {
            JSONObject o = new JSONObject(fba.facebook.request("/me"));
            fba.userId = o.getString("id");
            fba.success(getResponse(), fba.callbackId);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
});
t.start();

参考:使用 Phonegap 1.6.0 登录 Facebook 上的 NetworkOnMainThreadException

于 2013-07-25T11:42:34.560 回答