我正在使用 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: Unhandled exception java.lang.NullPointerException: Attempt to read from field 'com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry' on a null object reference java.lang.NullPointerException: Attempt to read from field 'com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry' on a null object reference at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:126)
我尝试了各种方法。但仍然有同样的问题。我不明白问题出在哪里。帮助解决这个问题
最佳答案
您没有解析响应。您只返回 null 而不是解析缓存 header 。解析响应后,您可以像这样解析带有缓存 header 的响应:
return Response.success(networkResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
在 parseNetworkResponse(NetworkResponse networkResponse) 方法中返回它
关于java - NullPointerException : Attempt to read from field 'com. android.volley.Cache$Entry com.android.volley.Response.cacheEntry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28539924/