我的应用程序想通过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
答案 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;
}