我们正在准备Android中的服务器客户端应用程序,我们在从服务器接收数据时遇到问题。
应用程序正在抛出 Out of Memory Exception (Out of memory on a 57283558-byte allocation.)
虽然我在largeHeap=true
中指定了AndroidManifest.xml
属性。
答案 0 :(得分:0)
60Mb的json响应似乎过多。如果这实际上是您所期望的,那么您可能需要查看不同类型的响应,或者即时解析。很难说没有更多的细节...
答案 1 :(得分: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中的响应或稍后可以使用的内容