Android apache.commons.io.IOUtils抛出内存不足错误

Android apache.commons.io.IOUtils抛出内存不足错误,android,apache-commons,apache-commons-io,Android,Apache Commons,Apache Commons Io,我使用以下代码获取服务器响应的字符串表示形式。问题是当它试图传递响应时抛出内存不足异常toString()。这段代码在Android上运行 String resp=IOUtils.toString(resent.getContent(),“UTF-8”); HttpGet HttpGet=新的HttpGet(url); setHeader(“内容类型”、“应用程序/json”); setHeader(“接受”、“JSON”); HttpResponse HttpResponse=httpclie

我使用以下代码获取服务器响应的字符串表示形式。问题是当它试图传递响应时抛出内存不足异常
toString()
。这段代码在Android上运行

String resp=IOUtils.toString(resent.getContent(),“UTF-8”);
HttpGet HttpGet=新的HttpGet(url);
setHeader(“内容类型”、“应用程序/json”);
setHeader(“接受”、“JSON”);
HttpResponse HttpResponse=httpclient.execute(httpGet);
HttpEntity当前状态=httpResponse.getEntity();
if(最近性!=null){
//String resp=EntityUtils.toString(最近性);
String resp=IOUtils.toString(resEntity.getContent(),“UTF-8”);//此处出现异常
日志i(标签、响应);
// ........
//这里是gosn解析器代码
// ........
}
堆栈跟踪是:

java.lang.OutOfMemoryError:(堆大小=47395KB,分配=36544KB)
位于java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:94)
位于java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:124)
在java.lang.StringBuilder.append(StringBuilder.java:271)
位于org.apache.commons.io.output.StringBuilderWriter.write(源文件:138)
位于org.apache.commons.io.IOUtils.copyragle(源文件:2002)
位于org.apache.commons.io.IOUtils.copyragle(源文件:1980)
位于org.apache.commons.io.IOUtils.copy(源文件:1957)
位于org.apache.commons.io.IOUtils.copy(源文件:1907)
位于org.apache.commons.io.IOUtils.toString(源文件:778)
位于org.apache.commons.io.IOUtils.toString(源文件:803)

此代码不会导致OOM,除非您正在下载一个大文件(在这种情况下,您可能需要将其下载到一个文件中,并分块读取该文件)。还有其他东西在使用你的内存。你的json有多大?我正在构建一个android应用程序,它是小部件的集合,每个小部件属性都可以从CMS中更改,当应用程序启动时,它下载所有小部件更改并存储在SQLite数据库中。在这种情况下,我不能确切地说什么是文件大小。此外,该应用程序使用数据库中保存的一组图像显示为应用程序backgorund图像,是否有任何方法可以读取响应块