【问题标题】:Volley OutOfMemoryErrorVolley OutOfMemoryError
【发布时间】:2013-07-18 22:06:47
【问题描述】:

在解析网络响应时,我们在 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) 上。

【问题讨论】:

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


    【解决方案1】:

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

    以防它可能对其他人有所帮助,我将Volley source 复制到my own Github repository 并进行了一些小改动,以便OutOfMemoryErrors 被处理为VolleyErrors。这使得记录/处理内存不足的情况变得更加简洁。

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

    【讨论】:

      【解决方案2】:

      所以,为了解决这个问题,我转而使用通用的 HttpConnection 和 JsonReader 来解析输入流。希望有人会添加到 Volley 并使其能够返回 JsonReader ...也许会是我...在我丰富的业余时间...

      【讨论】:

        猜你喜欢
        • 2016-01-05
        • 1970-01-01
        • 2015-01-28
        • 1970-01-01
        • 2017-04-12
        • 1970-01-01
        • 2011-05-16
        • 2011-01-18
        • 2013-06-21
        相关资源
        最近更新 更多