2011-02-14 60 views
0

代碼的Android不能序列化的byte []從壓縮BMP收到

Bitmap bmp = (Bitmap)extras.get("data"); 
ByteArrayOutputStream out = new ByteArrayOutputStream(); 
bmp.compress(CompressFormat.JPEG, 100, out); 
byte[] raw = out.toByteArray(); 
PassToWebservice(raw); //error 

PassToWebservice(byte[] ba) 
{ 
    SoapObject envelope... 
    envelope.addProperty("base64bytes", ba); 
    ... 
    transport.call(ACTION, envelope); 
    envelope.getResponse() //error: IOException cannot serialize... 
} 

問題
當我經過壓縮後的圖像到我的web服務,我得到一個RuntimeException,說:「不能序列[ B @ 47bcb6c8 ...「有些東西對我來說並不明顯,任何人都可以看到爲什麼上面的(僞代碼)不起作用?如果有幫助,對Web服務的服務器端,異常似乎當服務器寫入的字節傳遞到一個文件中(使用的.Net IO.File.WriteAllBytes)

堆棧跟蹤
enter image description here

+0

不知道我完全理解這個問題。異常消息表明它無法序列化字節[],即您的字節未到達服務器。你能提供一個堆棧跟蹤嗎? – 2011-02-14 14:45:50

+0

它看起來像是在膨脹請求並且尚未發送出去。我有用於ksoap2的Jar,而不是源代碼,所以我不能太確定。找到源代碼可能是有益的。 – 2011-02-14 16:13:55

回答

2
是發生

我需要做的是:

MarshalBase64 marshal; 
marshal.register(envelope);