Volley OutOfMemoryError

时间:2013-07-18 22:06:47

标签: android json parsing out-of-memory android-volley

我们在解析网络响应时在Volley库中收到OutOfMemory错误。这种情况发生在蹩脚的手机上。这可以避免吗?有没有办法告诉Volley分批解析回复?

以下是例外:

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)上。

2 个答案:

答案 0 :(得分:3)

我在Volley中看到OutOfMemoryError的唯一一次是我的代码中出现了OS 2.3特定的内存泄漏。如果您可以可靠地重现此错误(例如,在包含测试数据的自动化测试中),那么您可能应该在Google Android论坛中提出问题。

如果它可以帮助其他人,我会将Volley source复制到my own Github repository并进行一些小改动,以便OutOfMemoryError被处理为VolleyError s。这使得记录/处理低内存条件变得更加清晰。

这是具体的提交:
https://github.com/daj/volley/commit/c9e28fceda34074dda3734561502a20a28167ca9

答案 1 :(得分:1)

因此,为了解决这个问题,我转而使用通用的HttpConnection和JsonReader来解析输入流。希望有人会加入Volley并让它返回一个JsonReader ...也许这将是我...在我丰富的业余时间......