我试图将Facebook SDK整合到Android项目中。我在Facebook对话框中发布了一条留言信息,当我点击“分享”时,该信息在我的Facebook墙上成功发布。但是我的游戏仍然崩溃!Android应用程序在使用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):网页视图加载网址: https://m.facebook.com/dialog/feed W/AudioFlinger( (957):nativeDestroy视图:写入锁定 为80毫秒,275延迟写入,线程0xff88 D/dalvikvm(957): GC_CONCURRENT已释放539K,15%免费7403K/8647K,暂停3ms + 47ms D/webviewglue 0x925250 D/Facebook-WebView(957):重定向URL: fbconnect:// succes (957):threadid = 1: 线程正在以未捕获的异常退出(group = 0x40014760) E/AndroidRuntime(957):致命异常:主要E/AndroidRuntime(957): 显示java.lang.NullPointerException E/AndroidRuntime(957):在 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):在 机器人。 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) È/AndroidRuntime(957):在 java.lang.reflect.Method.invokeNative(本机方法) 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/ActivityMan几岁(67):强制完成活动 com.companyname.mainclassname/.MainClassName
你是否在不同的线程上运行它,而不是UI? –
我不确定我是否理解。我是Android开发新手。我的游戏的主类'活动在主线程上,它调用runOnUiThread,它运行Facebook对话框。 FbDialog.java是Facebook的SDK,我不知道FB是否使用另一个线程,我从我的游戏中引用它。 – Lisa
您是否使用常规Facebook类或* AsyncFacebookRunner *?如果你不使用后者,那么你没有理由使用* runOnUiThread *,因为你在同一个线程中。这与android无关,它更像是一个java事物,更重要的是:使用线程。 –