2013-03-16 67 views
1

我正在构建我的第一个Android应用程序,并遇到一个小问题。使用AsyncHttpClient下载PDF文件我得到AsyncHttpClient下载大量的PDF文件内存不足错误

 "E/dalvikvm-heap(30871): Out of memory on a 21893326-byte allocation." 

任何大于15 Mb的错误。文件高达15 Mb下载就好了。有任何设置可以解决这个问题吗?

在此先感谢您的帮助!

回答

0

是否有任何设置可以解决这个问题?

不是。假设你使用的是BinaryHttpResponseHandler,它会给你内存中的整个文件,这对大文件来说是不可能的。

您需要创建自己的BinaryHttpResponseHandler版本,并使用修改后的sendResponseMessage()方法将结果直接传输到文件。或者,找到另一个为您执行此操作的HTTP客户端库。

+0

我一直在使用你的项目的一些理解。 Camre-> Preview就是其中之一。我很感激你的帮助。我想通过你的启示来了解一些事情,我们可以使用一些回调机制或一些监听器来获取文件上传进度吗?我正在使用AsyncHttpClient(loopj)。似乎这个问题也与AsyncHttpClient(loopj)有关。任何帮助或指导将非常有帮助。 – 2013-03-16 13:26:11

+0

@FahadIshaque:我没有使用AsyncHttpClient - 我只是阅读源代码来确定你的问题是什么。如果您对AsyncHttpClient有进一步的问题,您可能会更好地联系其作者。 – CommonsWare 2013-03-16 13:29:23

+0

感谢您的回复。 Camare-> Preview是一个很好的例子,请您只需在其中添加相机可用性检查(专用或正面)。由于显而易见的原因(没有专用摄像头),我测试了它并在除Nexus7之外的所有设备上正常工作。谢谢!干杯! – 2013-03-16 13:32:25