我正在尝试将图片上传到Facebook,但"Key format expected byte[]"



我正在使用Facebook的API创建一个新相册,其中包含我的android应用程序中的图片,但我不断收到这些毫无意义的恼人错误。我做了一些研究,但一无所获。请帮忙!

String albumName = ((TextView)findViewById(R.id.album_name)).getText().toString();
Bundle params = new Bundle();
params.putByteArray("pictures", toByteArray(mediaPath[0])); 
params.putString("name", albumName);
request.request("https://graph.facebook.com/me/albums",params,"POST", new UploadListener(), new Object());

看看我的日志猫

01-26 15:51:50.501:W/Bundle(616):密钥格式应为byte[],但值为java.lang.String。返回默认值。01-26 16:07:48.871:D/Facebook Util(670):发布URL:https://graph.facebook.com/https://graph.facebook.com/me/albums01-26 16:07:48.891:W/Bundle(670):密钥格式应为byte[],但值为java.lang.String。返回默认值。01-26 16:07:48.891:W/捆绑包(670):尝试强制转换生成的内部异常:01-26 16:07:48.891:W/Bundle(670):java.lang.ClassCastException:java.lang.String01-26 16:07:48.891:W/Bundle(670):在android.os.Bundle.getByteArray(Bundle.java:1305)01-26 16:07:48.891:W/捆绑包(670):在com.facebook.android.Util.openUrl(Util.java:155)01-26 16:07:48.891:W/Bundle(670):在com.facebook.android.facebook.request(facebook.java:717)01-26 16:07:48.891:W/Bundle(670):在com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)01-26 16:07:49.390:D/dalvikvm(670):GC_CONCURRENT释放2526K,57%释放4489K/10311K,外部5789K/6493K,暂停5ms+4ms01-26 16:07:49.560:W/Bundle(670):键方法应为byte[],但值为java.lang.String。返回默认值。01-26 16:07:49.560:W/Bundle(670):尝试强制转换生成的内部异常:01-26 16:07:49.560:W/Bundle(670):java.lang.ClassCastException:java.lang.String01-26 16:07:49.560:W/Bundle(670):在android.os.Bundle.getByteArray(Bundle.java:1305)01-26 16:07:49.560:W/Bundle(670):在com.facebook.android.Util.encodePostBody(Util.java:63)01-26 16:07:49.560:W/捆绑包(670):在com.facebook.android.Util.openUrl(Util.java:182)01-26 16:07:49.560:W/捆绑包(670):在com.facebook.android.facebook.request(facebook.java:717)01-26 16:07:49.560:W/Bundle(670):在com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)01-26 16:07:49.570:W/Bundle(670):密钥格式应为byte[],但值为java.lang.String。返回默认值。01-26 16:07:49.570:W/Bundle(670):尝试强制转换生成的内部异常:01-26 16:07:49.570:W/Bundle(670):java.lang.ClassCastException:java.lang.String01-26 16:07:49.570:W/Bundle(670):在android.os.Bundle.getByteArray(Bundle.java:1305)01-26 16:07:49.570:W/Bundle(670):在com.facebook.android.Util.encodePostBody(Util.java:63)01-26 16:07:49.570:W/捆绑包(670):在com.facebook.android.Util.openUrl(Util.java:182)01-26 16:07:49.570:W/捆绑包(670):在com.facebook.android.facebook.request(facebook.java:717)01-26 16:07:49.570:W/Bundle(670):在com.facebook.android.AsyncFacebookRunner$2.run(AsyncFacebookRunner.java:253)01-26 16:07:49.610:D/dalvikvm(670):GC_FOR_MALLOC释放258K,57%释放4445K/10311K,外部5789K/6493K,暂停38ms01-26 16:07:49.620:I/dalvikvm-heap(670):将堆(frag-case)增加到15.307MB以分配2903026字节01-26 16:07:49.670:D/dalvikvm(670):GC_FOR_MALLOC释放<1K,45%空闲7280K/1391K,外部5789K/6493K,暂停32ms01-26 16:07:49.781:D/dalvikvm(670):GC_CONCURRENT释放4K,45%释放7280K/1391K,外部5789K/6493K,暂停4ms+5ms01-26 16:07:54.990:W/dalvikvm(670):threadid=16:线程退出,出现未捕获的异常(组=0x40015560)01-26 16:07:54.990:E/AndroidRuntime(670):致命异常:Thread-19

尝试替换:

params.putByteArray("pictures", toByteArray(mediaPath[0]));

带有:

params.putString("pictures", mediaPath[0]);

它显然对byte[]不满意,所以我从这里开始。(这是假设mediaPath[]顾名思义是一个字符串数组。

如果不起作用,请先尝试创建相册,然后添加图片,查看此处的相册创建解决方案:

相关内容

最新更新