NullPointerException:尝试从字段中读取&com; .android.volley.Cache $ Entry com.android.volley.Response.cacheEntry

时间:2015-02-16 11:02:06

标签: java android json api android-volley

使用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&#39;中读取。在null对象引用上       java.lang.NullPointerException:尝试从字段中读取com.android.volley.Cache $ Entry com.android.volley.Response.cacheEntry&#39;在null对象引用上               在com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:126)

我尝试了各种方法。但仍然有同样的问题。我不明白问题在哪里。帮助解决这个问题

1 个答案:

答案 0 :(得分:5)

您没有解析响应。您只返回null而不解析缓存头。解析响应后,您可以返回响应,缓存头解析如下:

return Response.success(networkResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));

在parseNetworkResponse(NetworkResponse networkResponse)方法中返回