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 [重复]

尝试访问 Kotlin 片段中的视图时出现 NullPointerException

尝试通过“this”传递对象时出现 NullPointerException