Uda*_*ran 11 android bytearray bitmap ksoap2
我有一个bitmap,所以我想上传一个webserivceas字符串,并想要检索字符串.
使用以下命令将位图转换为字符串am:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
strBase64 = Base64.encodeToString(byteArray, Base64.URL_SAFE);
Run Code Online (Sandbox Code Playgroud)
以上String内容用作soapobject上传的属性.
但是Out of memory on a 11674900-byte allocation在打印和上传时我会得到.
如果我调试了问题,没有打印我得到
com.sun.jdi.InvocationException occurred invoking method.
Run Code Online (Sandbox Code Playgroud)
上 soaprequest.
如何解决此问题以及upload image作为字符串的webservice?
您正在创建一个11MB的图像(3份bitmap,stream,strBase64).所以通过调用来减少内存使用量
bitmap.recycle();
Run Code Online (Sandbox Code Playgroud)
在这条线下面:
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
Run Code Online (Sandbox Code Playgroud)
完成后关闭流(如下所示stream.toByteArray();):
stream.close();
stream = null;
Run Code Online (Sandbox Code Playgroud)
请记住,无法保证在这些调用后立即清除内存.处理这种情况的正确方法是按块传输大块文件.
| 归档时间: |
|
| 查看次数: |
22078 次 |
| 最近记录: |