2013-03-16 33 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