Android的应用程序崩溃使用Facebook的对话框后共享 [英] Android App Crashes after Sharing using Facebook Dialogs
问题描述
我想给Facebook SDK集成到Android项目。我张贴在Facebook的对话,一堵墙的消息时,我打共享,该消息被成功地贴在我的Facebook墙上。但我的比赛仍然崩溃!
我把它从一个扩展的活动我的主类。弹出facebook的用户界面对话框,我使用runOnUiThread。 (AsyncTask的并不在我的code工作。)
公共静态INT fbShareScores(最后弦乐sBody)
{
尝试
{
oThis.runOnUiThread(
新的Runnable()
{
@覆盖
公共无效的run()
{
捆绑PARAMS =新包();
params.putString(标题,标题);
params.putString(说明,sBody);
params.putString(图片报,URL_TO_PNG);
params.putString(名,姓名);
oThis.mFacebook.dialog(oThis,饲料,则params,NULL);
}
}
);
}
赶上(例外五)
{
Log.d(Globals.sApplicationName,共享分数:对话框:+ e.getMessage());
}返回1;
}
下面是我的错误,从logcat的:
D / Facebook的-的WebView(957):加载网页视图网址:
https://m.facebook.com/dialog/feed W / AudioFlinger(32):写受阻
80毫秒,275延迟写入,螺纹0xff88 D / dalvikvm(957):
GC_CONCURRENT释放539K,15%的可用7403K / 8647K,暂停3毫秒+ 47ms
D / webviewglue(957):nativeDestroy观点:0x925250
D / Facebook的-的WebView(957):重定向URL地址:
fbconnect://成功POST_ID = 570020602_418386674846932
D / AndroidRuntime(957):关闭VM W / dalvikvm(957):主题ID = 1:
螺纹未捕获的异常退出(组= 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):在
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(本机方法)
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(母语
法)W / ActivityManager(67):强制完成活动
com.companyname.mainclassname / .MainClassName
块引用>解决方案当我更改线路在上面code中的错误去了:
oThis.mFacebook.dialog(oThis,饲料,则params,新PostStatusDialogListener());
然后添加一个新的DialogListener:
公共类PostStatusDialogListener实现DialogListener
{
@覆盖
公共无效的onComplete(束值){
Log.d(Globals.sApplicationNamePostStatusDialogListener ::的onComplete);
} @覆盖
公共无效onFacebookError(FacebookError错误){
Log.d(Globals.sApplicationNamePostStatusDialogListener :: onFacebookError:+ error.getMessage());
} @覆盖
公共无效onerror的(DialogError错误){
Log.d(Globals.sApplicationNamePostStatusDialogListener :: DialogError:+ error.getMessage());
} @覆盖
公共无效onCancel(){
Log.d(Globals.sApplicationNamePostStatusDialogListener :: onCancel);
}
}I'm trying to integrate Facebook SDK into an Android project. I'm posting a wall message in the Facebook Dialog, when I hit "Share", the message gets posted successfully on my Facebook wall. But my game still crashes!
I call it from my main class that extends Activity. To popup the facebook UI dialogs, I use runOnUiThread. (AsyncTask doesn't work in my code.)
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; }
Here are my errors from logcat:
D/Facebook-WebView(957): Webview loading URL: https://m.facebook.com/dialog/feed W/AudioFlinger(32): write blocked for 80 msecs, 275 delayed writes, thread 0xff88 D/dalvikvm(957): GC_CONCURRENT freed 539K, 15% free 7403K/8647K, paused 3ms+47ms D/webviewglue(957): nativeDestroy view: 0x925250 D/Facebook-WebView(957): Redirect URL: fbconnect://success?post_id=570020602_418386674846932 D/AndroidRuntime(957): Shutting down VM W/dalvikvm(957): threadid=1: thread exiting with uncaught exception (group=0x40014760) E/AndroidRuntime(957): FATAL EXCEPTION: main E/AndroidRuntime(957): java.lang.NullPointerException E/AndroidRuntime(957): at com.facebook.android.FbDialog$FbWebViewClient.shouldOverrideUrlLoading(FbDialog.java:143) E/AndroidRuntime(957): at android.webkit.CallbackProxy.uiOverrideUrlLoading(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 Method) W/ActivityManager(67): Force finishing activity com.companyname.mainclassname/.MainClassName
解决方案The error is gone when I change the line in the above code to:
oThis.mFacebook.dialog(oThis, "feed", params, new PostStatusDialogListener());
Then add a new DialogListener:
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"); } }
这篇关于Android的应用程序崩溃使用Facebook的对话框后共享的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!