Java NullPointerException:尝试从字段';com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry
我正在使用Android截取从外部API获取JSONArray。我的代码在下面Java NullPointerException:尝试从字段';com.android.volley.Cache$Entry com.android.volley.Response.cacheEntry,java,android,json,api,android-volley,Java,Android,Json,Api,Android Volley,我正在使用Android截取从外部API获取JSONArray。我的代码在下面 StringRequest jq = new StringRequest("http://api.example.com/json/States", new Response.Listener<String>() { @Override public void onResponse(String jsonArray) { try {
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);
StringRequest jq=新的StringRequest(“http://api.example.com/json/States,新的响应。侦听器(){
@凌驾
公共void onResponse(字符串jsonArray){
试一试{
Log.d(“Success”,jsonArray.toString());
}捕获(例外){
je.printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共错误响应(截击错误截击错误){
Log.d(“Error”,volleyError.toString());
}
}) {
@凌驾
受保护的响应parseNetworkResponse(NetworkResponse NetworkResponse){
返回null;
}
};
AppController a=AppController.getInstance();
Log.d(“队列”、“添加”);
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)
我尝试了各种方法。但我还是有同样的问题。我不明白问题出在哪里。帮助修复此问题您没有解析响应。您只返回null,不解析缓存头。解析响应后,可以返回带有缓存头的响应,解析方式如下:
return Response.success(networkResponse, HttpHeaderParser.parseCacheHeaders(networkResponse));
在parseNetworkResponse(NetworkResponse NetworkResponse)方法中返回此值是否获得此问题的解决方案?不完全正确。现在,我将代码从StringRequest及其工作环境更改为新的JsonArrayRequest。