NullPointerException:尝试从字段 'com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry 读取
Posted
技术标签:
【中文标题】NullPointerException:尝试从字段 \'com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry 读取【英文标题】:NullPointerException : Attempt to read from field 'com.android.volley.Cache$Entry com.android.volley.Response.cacheEntryNullPointerException:尝试从字段 'com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry 读取 【发布时间】:2015-04-16 21:00:20 【问题描述】:我正在使用 android Volley 从外部 API 获取 JSONArray。我的代码如下
StringRequest jq = new StringRequest("http://api.example.com/json/States", new Response.Listener<String>()
@Override
public void onResponse(String jsonArray)
try
Log.d("Success", jsonArray.toString());
catch (Exception je)
je.printStackTrace();
, new Response.ErrorListener()
@Override
public void onErrorResponse(VolleyError volleyError)
Log.d("Error", volleyError.toString());
)
@Override
protected Response parseNetworkResponse(NetworkResponse networkResponse)
return null;
;
AppController a = AppController.getInstance();
Log.d("Queue", "Add");
a.addToRequestQueue(jq);
我总是在下面遇到同样的错误
NetworkDispatcher.run:未处理的异常 java.lang.NullPointerException:尝试从空对象引用上的字段“com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry”读取 java.lang.NullPointerException:尝试从空对象引用上的字段“com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry”读取 在 com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:126)
我尝试了各种方法。但仍然有同样的问题。我无法理解问题出在哪里。帮助解决这个问题
【问题讨论】:
你找到解决方案了吗? 不完全是。现在我将我的代码从 StringRequest 更改为新的 JsonArrayRequest 及其工作。 【参考方案1】:您没有解析响应。您只返回 null 而不是解析缓存标头。解析响应后,您可以返回带有缓存头解析的响应,如下所示:
return Response.success(networkResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
在 parseNetworkResponse(NetworkResponse networkResponse) 方法中返回这个
【讨论】:
以上是关于NullPointerException:尝试从字段 'com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry 读取的主要内容,如果未能解决你的问题,请参考以下文章
ViewPager Andorid:NullPointerException: 尝试调用虚拟方法
为啥尝试在 GoogleMap 上放置标记时出现 NullPointerException?
java.lang.NullPointerException:尝试调用虚拟方法 java.lang.String [重复]