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

Vin*_*nan 3 java api android json 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);
Run Code Online (Sandbox Code Playgroud)

我一直得到同样的错误

NetworkDispatcher.run:未处理的异常java.lang.NullPointerException:尝试从空对象引用java.lang.NullPointerException上的字段'com.android.volley.Cache $ Entry com.android.volley.Response.cacheEntry'中读取:尝试从com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:126)的空对象引用上的字段'com.android.volley.Cache $ Entry com.android.volley.Response.cacheEntry'中读取

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

lak*_*hay 5

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

return Response.success(networkResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
Run Code Online (Sandbox Code Playgroud)

在parseNetworkResponse(NetworkResponse networkResponse)方法中返回此信息