OutOfMemoryError - DiskBasedCache崩溃

时间:2016-05-09 09:49:45

标签: android android-volley

我突然开始接受这次崩溃:

Non-fatal Exception: java.lang.OutOfMemoryError
    Failed to allocate a 2037654060 byte allocation with 33554336 free bytes and 170MB until OOM
     Raw
    com.android.volley.toolbox.DiskBasedCache.streamToBytes (DiskBasedCache.java:322)
    com.android.volley.toolbox.DiskBasedCache.readString (DiskBasedCache.java:532)
    com.android.volley.CacheDispatcher.run (CacheDispatcher.java:84)

我的parseNetworkResponse:

 @Override
 protected Response<T> parseNetworkResponse(NetworkResponse response) {
    try {
      String json = new String( response.data, HttpHeaderParser.parseCharset(response.headers));

      return Response.success( gson.fromJson(json, class), HttpHeaderParser.parseCacheHeaders(response));

我尝试将setShouldCache(false);添加到parseNetworkResponse回调方法,但这并没有解决问题。

2 个答案:

答案 0 :(得分:0)

在你的清单中添加

机器人:largeHeap = “真” 并阅读这些http://android-developers.blogspot.in/2009/01/avoiding-memory-leaks.html

答案 1 :(得分:0)

你是否特别缓存文件是你的应用程序中的一些其他数据?如果是这样的话。删除先前启动时的先前数据,然后将其存储,然后检查是否存在空格。