FacebookのSDKをAndroidプロジェクトに統合しようとしています。私はFacebookのダイアログで壁のメッセージを投稿しています。「共有」を押すと、メッセージはFacebookの壁に正常に投稿されます。しかし、私のゲームはまだクラッシュする!Facebookのダイアログを使ってAndroid Appを共有した後でクラッシュする
アクティビティを拡張するメインクラスから呼び出す。 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/feed W/AudioFlinger( (957):80 msec、275遅延書き込み、スレッド0xff88 D/dalvikvm(957): GC_CONCURRENT解放539K、15%フリー7403K/8647K、一時停止3ms + 47ms D/webviewglue(957):nativeDestroyビュー: 0x925250 D/Facebook-WebView(957):リダイレクトURL: fbconnect:// succes (957):threadid = 1: キャッチされない例外(グループ= 0x40014760)でスレッドが終了する E/AndroidRuntime(957):致命的な例外:main 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) E/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(ネイティブ メソッド)W/ActivityManエージャー(67):私は上記のコードの行を変更したときに強制 com.companyname.mainclassname/.MainClassName
あなたはすべてUIとは異なるスレッドで実行していますか? –
わかっても分かりません。私はAndroid開発の初心者です。私のゲームのメインクラスのアクティビティはメインスレッド上にあり、Facebookダイアログを実行するrunOnUiThreadを呼び出します。 FbDialog.javaはFacebookのSDKですが、FBが別のスレッドを使用しているかどうかわかりません。 – Lisa
通常のFacebookクラスまたは* AsyncFacebookRunner *を使用していますか?後者を使用していない場合は、同じスレッド上にあるので、runOnUiThread *を使用する理由はありません。これはアンドロイドとは関係がありません。それはJavaのものであり、さらに基本的なものです:スレッドを扱うことです。 –