【发布时间】:2017-04-14 09:22:21
【问题描述】:
我将 Volley 用于我的网络库,但出现内存不足错误。它只发生在我们的一位用户身上,但我想知道,如果可能的话,我该如何解决这个问题。
stacktrace 很小而且非常无用:
Fatal Exception: java.lang.OutOfMemoryError
at java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:122)
at com.android.volley.toolbox.BasicNetwork.entityToBytes(BasicNetwork.java:241)
at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:123)
at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:112)
这就是整个堆栈跟踪?
有什么想法吗?
【问题讨论】:
-
volley 检索到的内容有多大?看起来设备的内存太小,无法处理这么大的内容。还有设备型号是什么?
-
很难说这个调用是在哪里进行的,我们在这个应用程序中有大约 68 个不同的 web 服务调用,从技术上讲,它可能是其中任何一个?
-
整个应用程序的内存不足。问题可能是即时请求,但通常是完全不同的地方。无法从给定的信息中进行调试。试着弄清楚它是什么请求,导致它的请求数据有多大,看看它是否不合理。如果没有,请查看堆转储以查看总内存使用情况并查找泄漏。
标签: java android android-volley