使用 Volley 解析空指针异常 Android json
Null pointer Exception Android json parsing using Volley
我正在使用 Json 使用 Volley 概念进行解析,这一行出现空指针异常 "AppController.getInstance().addToRequestQueue(jsonObjReq);" 请给出解决方案。谢谢
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,Allbooksurl, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject object) {
try {
String result = object.getString("status");
Log.d(result, "result");
String message = object.getString("info");
Log.d(message, "message");
JSONArray responserecentbooks= object.getJSONArray("recentbooks");
for (int i = 0; i < responserecentbooks.length(); i++)
{
JSONObject person = (JSONObject) responserecentbooks.get(i);
String id = person.getString("id");
String name = person.getString("name");
db.insertValue(id, name);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//VolleyLog.d(TAG, "Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_SHORT).show();
}
});
try {
AppController.getInstance().addToRequestQueue(jsonObjReq);
} catch (Exception e) {
e.printStackTrace();
}
您的错误清楚地表明 Null pointer Exception
在
AppController.getInstance().addToRequestQueue(jsonObjReq);
因此您的 AppController
class 实例在 getInstance()
方法中可能为空。
您的 AppController
可以为空。检查你的代码,应该是这样的:
private static AppController INSTANCE;
public static AppController getInstance() {
return INSTANCE;
}
@Override
public void onCreate() {
super.onCreate();
INSTANCE = this;
}
I forget to declare this in manifeast
<application
android:name="com.example.AppController"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:screenOrientation="portrait"></application>
我正在使用 Json 使用 Volley 概念进行解析,这一行出现空指针异常 "AppController.getInstance().addToRequestQueue(jsonObjReq);" 请给出解决方案。谢谢
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.GET,Allbooksurl, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject object) {
try {
String result = object.getString("status");
Log.d(result, "result");
String message = object.getString("info");
Log.d(message, "message");
JSONArray responserecentbooks= object.getJSONArray("recentbooks");
for (int i = 0; i < responserecentbooks.length(); i++)
{
JSONObject person = (JSONObject) responserecentbooks.get(i);
String id = person.getString("id");
String name = person.getString("name");
db.insertValue(id, name);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//VolleyLog.d(TAG, "Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_SHORT).show();
}
});
try {
AppController.getInstance().addToRequestQueue(jsonObjReq);
} catch (Exception e) {
e.printStackTrace();
}
您的错误清楚地表明 Null pointer Exception
在
AppController.getInstance().addToRequestQueue(jsonObjReq);
因此您的 AppController
class 实例在 getInstance()
方法中可能为空。
您的 AppController
可以为空。检查你的代码,应该是这样的:
private static AppController INSTANCE;
public static AppController getInstance() {
return INSTANCE;
}
@Override
public void onCreate() {
super.onCreate();
INSTANCE = this;
}
I forget to declare this in manifeast
<application
android:name="com.example.AppController"
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:screenOrientation="portrait"></application>