Facebook SDK强制关闭

时间:2011-08-23 10:10:40

标签: android facebook

我的应用程序想通过Facebook的SDK共享功能来分享音乐到Facebook。早些时候它正在工作,但现在它强制关闭parseUrl方法。谁能帮我 ?谢谢。

抱歉,谢谢你的帮助,这是我的代码

Facebook facebook = new Facebook("123456789123456");
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Bundle parameters = new Bundle();   

    parameters.putString("caption" , " ");
    parameters.putString("description" , "http://www.music.com");
    parameters.putString("name" , "(Sweet)");
    facebook.dialog(this, "stream.publish", parameters, 
    new DialogListener()
    {
        @Override
        public void onComplete(Bundle values) 
        {
            /*try 
            {
                facebook.logout(getApplicationContext());
            }
            catch (Exception e) {}*/
        }

        @Override
        public void onFacebookError(FacebookError error) {}

        @Override
        public void onError(DialogError e) {}

        @Override
        public void onCancel() {}
    });
}

这是一个logcat

08-24 13:01:06.734: ERROR/LoadListener.java(4987): @@@@@@@@@@ mCacheType detachRequestHandle() --> mCacheType0
08-24 13:01:07.097: ERROR/AndroidRuntime(4987): FATAL EXCEPTION: main
08-24 13:01:07.097: ERROR/AndroidRuntime(4987): java.lang.ArrayIndexOutOfBoundsException
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at com.facebook.android.Util.decodeUrl(Util.java:97)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at com.facebook.android.Util.parseUrl(Util.java:115)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at com.facebook.android.FbDialog$FbWebViewClient.shouldOverrideUrlLoading(FbDialog.java:125)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:232)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:359)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at android.os.Looper.loop(Looper.java:123)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at android.app.ActivityThread.main(ActivityThread.java:3687)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at java.lang.reflect.Method.invokeNative(Native Method)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at java.lang.reflect.Method.invoke(Method.java:507)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
08-24 13:01:07.097: ERROR/AndroidRuntime(4987):     at dalvik.system.NativeStart.main(Native Method)
08-24 13:01:07.128: ERROR/(158): Dumpstate > /data/log/dumpstate_app_error

2 个答案:

答案 0 :(得分:0)

Facebook将放弃stream.publish功能(见this notice)。最近,SO上的其他人也抱怨problems with stream.publish。我想新的facebook API现在在通过流发布方面有点麻烦。您最好切换到Graph API发布。

答案 1 :(得分:0)

我最近遇到了同样的问题。由于某种原因,其中一个参数作为-进入,不能分成两个字符串。 通过对com\facebook\android\Util.java

进行检查来修复它

下面给出了修改后的decodeUrl方法。

public static Bundle decodeUrl(String s) 
{
    Bundle params = new Bundle();
    if (s != null) 
    {
        String array[] = s.split("&");
        for (String parameter : array) 
        {
            String v[] = parameter.split("=");

            if(v.length >= 2)
            {
                params.putString(URLDecoder.decode(v[0]), 
                                    URLDecoder.decode(v[1]));
            }
        }
    }
    return params;
}