-1

我们正在Android中准备一个服务器客户端应用程序,我们在从我的服务器接收数据时遇到问题。

应用程序抛出内存不足异常,(Out of memory on a 57283558-byte allocation.)尽管我largeHeap=trueAndroidManifest.xml.

4

2 回答 2

0

我怀疑您正在尝试将正在下载的内容保存在内存中,这就是您获得 OOM 的原因。

如果您是 API 9 及更高版本,则可以查看DownloadManager

或尝试以下方式:

URL url = new URL("http://www.example.com/largefile.zip");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
InputStream in = new BufferedInputStream(connection.getInputStream());
FileOutputStream out = openFileOutput("largefile.zip", Activity.MODE_PRIVATE);

编辑:我瞥见了一个 60mb json 响应的提及。你真的应该重新考虑你在做什么。也许您可以使用Jackson Streaming API来解析响应并将其保存在 db 中,或者您以后可以使用的东西

于 2013-10-10T06:03:02.913 回答
0

60Mb 的 json 响应似乎过多。如果这实际上是您所期望的,那么您可能需要查看不同类型的响应,或者即时解析。很难说没有更多的细节......

于 2013-10-10T05:55:45.467 回答