2013-07-18 89 views
4

在解析網絡響應時,我們在Volley庫中發生OutOfMemory錯誤。這發生在蹩腳手機上的大量響應。這可以避免嗎?有什麼方法可以讓Volley分批解析反應?Volley OutOfMemoryError

這裏的例外:

07-18 14:33:41.449 6130-6154/com.tinder E/AndroidRuntime: FATAL EXCEPTION: Thread-22 
    java.lang.OutOfMemoryError 
    at java.lang.String.<init>(String.java:325) 
    at java.lang.String.<init>(String.java:276) 
    at com.android.volley.toolbox.JsonObjectRequest.parseNetworkResponse(JsonObjectRequest.java:66) 
    at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:116) 

這發生在對Droid X(2.3.4)。

回答

1

所以,爲了解決這個問題,我切換到使用通用的HttpConnection和JsonReader來解析輸入流。希望有人會加入到Volley並使其返回JsonReader ...也許這將是我...在我豐富的業餘時間...

3

我唯一一次在Volley看到OutOfMemoryError s是當我有我的代碼中有一個OS 2.3特定的內存泄漏。如果您可以可靠地重現此錯誤(例如在使用測試數據的自動測試中),那麼您應該在Google Android論壇中提出問題。

在情況下,它可能會幫助別人,我複製了Volley sourcemy own Github repository並做了小改動,使OutOfMemoryError s如上VolleyError小號處理。這使得記錄/處理內存不足的情況稍微清晰一些。

下面是具體的承諾:
https://github.com/daj/volley/commit/c9e28fceda34074dda3734561502a20a28167ca9