Android 应用程序在使用 Facebook 对话框共享后崩溃



我正在尝试将Facebook SDK集成到Android项目中。我在Facebook对话框中发布了一条留言墙消息,当我点击"分享"时,该消息会成功发布在我的Facebook留言板上。但是我的游戏仍然崩溃了!

我从扩展活动的主要类中调用它。为了弹出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;
}

这是我从日志猫收到的错误:

D/Facebook-WebView(957(: Webview 加载网址: https://m.facebook.com/dialog/feed 带音频跳动器(32(:写被阻止 对于 80 毫秒,275 次延迟写入,线程0xff88 D/dalvikvm(957(: GC_CONCURRENT释放 539K,15% 释放 7403K/8647K,暂停 3 毫秒 + 47 毫秒 D/webviewglue(957(: nativeDestroy view: 0x925250 D/Facebook-WebView(957(: 重定向网址: fbconnect://success?post_id=570020602_418386674846932 D/AndroidRuntime(957(: 关闭 VM W/dalvikvm(957(: threadid=1: 线程退出并出现未捕获的异常 (group=0x40014760( E/Android运行时(957(: 致命异常: 主 E/Android运行时(957(: java.lang.NullPointerException E/AndroidRuntime(957(: at com.facebook.android.FbDialog$FbWebViewClient.shouldOverrideUrlLoad(FbDialog.java:143( E/AndroidRuntime(957(: at android.webkit.CallbackProxy.uiOverrideUrlLoad(CallbackProxy.java:219( E/AndroidRuntime(957(: at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:319( E/AndroidRuntime(957(: at android.os.Handler.dispatchMessage(Handler.java:99( E/AndroidRuntime(957(: at android.os.Looper.loop(Looper.java:126( E/AndroidRuntime(957(: at android.app.ActivityThread.main(ActivityThread.java:3997( E/AndroidRuntime(957(: at java.lang.reflect.Method.invokeNative(Native Method( E/AndroidRuntime(957(: at 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 方法(带活动管理器(67(:强制完成活动 com.companyname.mainclassname/.主类名

当我将上述代码中的行更改为:

oThis.mFacebook.dialog(oThis, "feed", params, new PostStatusDialogListener());

然后添加新的对话侦听器:

public class PostStatusDialogListener implements DialogListener 
{
  @Override
  public void onComplete(Bundle values) {
    Log.d(Globals.sApplicationName, "PostStatusDialogListener::onComplete");
  }
  @Override
  public void onFacebookError(FacebookError error) {
    Log.d(Globals.sApplicationName, "PostStatusDialogListener::onFacebookError: " + error.getMessage());
  }
  @Override
  public void onError(DialogError error) {
    Log.d(Globals.sApplicationName, "PostStatusDialogListener::DialogError: " + error.getMessage());
  }
  @Override
  public void onCancel() {
    Log.d(Globals.sApplicationName, "PostStatusDialogListener::onCancel");
  }
}

最新更新