我们在解析网络响应时在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)上。
答案 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 ...也许这将是我...在我丰富的业余时间......