我正在尝试将 Facebook SDK 集成到 Android 项目中。我在 Facebook 对话框中发布了一条墙消息,当我点击“分享”时,该消息会成功发布在我的 Facebook 墙上。但是我的游戏还是崩溃了!
我从扩展 Activity 的主类中调用它。为了弹出 facebook UI 对话框,我使用 runOnUiThread。(AsyncTask 在我的代码中不起作用。)
public static int fbShareScores( final String sBody )
{
try
{
oThis.runOnUiThread (
new Runnable ( )
{
@Override
public void run ( )
{
Bundle params = new Bundle();
params.putString("caption", "Caption");
params.putString("description", sBody);
params.putString("picture", URL_TO_PNG);
params.putString("name", "Name");
oThis.mFacebook.dialog(oThis, "feed", params, null);
}
}
);
}
catch ( Exception e )
{
Log.d(Globals.sApplicationName, "share scores: Dialog: " + e.getMessage());
}
return 1;
}
这是我在 logcat 中的错误:
D/Facebook-WebView(957):Webview 加载 URL: https ://m.facebook.com/dialog/feedW/AudioFlinger(32):写入阻塞 80 毫秒,275 延迟写入,线程 0xff88 D/dalvikvm(957):GC_CONCURRENT 释放 539K,15% 空闲 7403K/8647K,暂停 3ms+47ms D/webviewglue(957):nativeDestroy 视图: 0x925250 D/Facebook-WebView(957): 重定向 URL: fbconnect://success?post_id=570020602_418386674846932 D/AndroidRuntime(957): 关闭 VM W/dalvikvm(957): threadid=1: 线程退出未捕获异常 ( group=0x40014760) E/AndroidRuntime(957): 致命异常: main E/AndroidRuntime(957): java.lang.NullPointerException E/AndroidRuntime(957): at com.facebook.android.FbDialog$FbWebViewClient.shouldOverrideUrlLoading(FbDialog.java :143) E/AndroidRuntime(957): 在 android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:219) E/AndroidRuntime(957): 在 android.webkit.CallbackProxy。handleMessage(CallbackProxy.java:319) E/AndroidRuntime(957): 在 android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(957): 在 android.os.Looper.loop(Looper.java: 126) E/AndroidRuntime(957): 在 android.app.ActivityThread.main(ActivityThread.java:3997) E/AndroidRuntime(957): 在 java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(957) ): 在 java.lang.reflect.Method.invoke(Method.java:491) E/AndroidRuntime(957): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) E/AndroidRuntime (957): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) E/AndroidRuntime(957): 在 dalvik.system.NativeStart.main(Native Method) W/ActivityManager(67): Force整理活动 com.companyname.mainclassname/.MainClassName319) E/AndroidRuntime(957): 在 android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(957): 在 android.os.Looper.loop(Looper.java:126) E/AndroidRuntime( 957): 在 android.app.ActivityThread.main(ActivityThread.java:3997) E/AndroidRuntime(957): 在 java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(957): 在 java.lang .reflect.Method.invoke(Method.java:491) E/AndroidRuntime(957): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) E/AndroidRuntime(957): at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:599) E/AndroidRuntime(957): at dalvik.system.NativeStart.main(Native Method) W/ActivityManager(67): 强制完成活动 com.companyname。主类名/.MainClassName319) E/AndroidRuntime(957): 在 android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(957): 在 android.os.Looper.loop(Looper.java:126) E/AndroidRuntime( 957): 在 android.app.ActivityThread.main(ActivityThread.java:3997) E/AndroidRuntime(957): 在 java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(957): 在 java.lang .reflect.Method.invoke(Method.java:491) E/AndroidRuntime(957): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) E/AndroidRuntime(957): at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:599) E/AndroidRuntime(957): at dalvik.system.NativeStart.main(Native Method) W/ActivityManager(67): 强制完成活动 com.companyname。主类名/.MainClassNamedispatchMessage(Handler.java:99) E/AndroidRuntime(957): 在 android.os.Looper.loop(Looper.java:126) E/AndroidRuntime(957): 在 android.app.ActivityThread.main(ActivityThread.java: 3997) E/AndroidRuntime(957): 在 java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(957): 在 java.lang.reflect.Method.invoke(Method.java:491) E/AndroidRuntime (957): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) E/AndroidRuntime(957): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599 ) E/AndroidRuntime(957): at dalvik.system.NativeStart.main(Native Method) W/ActivityManager(67): 强制完成活动 com.companyname.mainclassname/.MainClassNamedispatchMessage(Handler.java:99) E/AndroidRuntime(957): 在 android.os.Looper.loop(Looper.java:126) E/AndroidRuntime(957): 在 android.app.ActivityThread.main(ActivityThread.java: 3997) E/AndroidRuntime(957): 在 java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(957): 在 java.lang.reflect.Method.invoke(Method.java:491) E/AndroidRuntime (957): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) E/AndroidRuntime(957): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599 ) E/AndroidRuntime(957): at dalvik.system.NativeStart.main(Native Method) W/ActivityManager(67): 强制完成活动 com.companyname.mainclassname/.MainClassName126) E/AndroidRuntime(957): 在 android.app.ActivityThread.main(ActivityThread.java:3997) E/AndroidRuntime(957): 在 java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(957) ): 在 java.lang.reflect.Method.invoke(Method.java:491) E/AndroidRuntime(957): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) E/AndroidRuntime (957): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) E/AndroidRuntime(957): 在 dalvik.system.NativeStart.main(Native Method) W/ActivityManager(67): Force整理活动 com.companyname.mainclassname/.MainClassName126) E/AndroidRuntime(957): 在 android.app.ActivityThread.main(ActivityThread.java:3997) E/AndroidRuntime(957): 在 java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(957) ): 在 java.lang.reflect.Method.invoke(Method.java:491) E/AndroidRuntime(957): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) E/AndroidRuntime (957): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) E/AndroidRuntime(957): 在 dalvik.system.NativeStart.main(Native Method) W/ActivityManager(67): Force整理活动 com.companyname.mainclassname/.MainClassName调用(Method.java:491) E/AndroidRuntime(957): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) E/AndroidRuntime(957): 在 com.android.internal。 os.ZygoteInit.main(ZygoteInit.java:599) E/AndroidRuntime(957): at dalvik.system.NativeStart.main(Native Method) W/ActivityManager(67): 强制完成活动 com.companyname.mainclassname/.MainClassName调用(Method.java:491) E/AndroidRuntime(957): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) E/AndroidRuntime(957): 在 com.android.internal。 os.ZygoteInit.main(ZygoteInit.java:599) E/AndroidRuntime(957): at dalvik.system.NativeStart.main(Native Method) W/ActivityManager(67): 强制完成活动 com.companyname.mainclassname/.MainClassName