[英]Getting NullPointerException for json object
我一直在JSONObject json = userFunctions.uploadFileData(guid, photoName);
行上收到NullPointerException错误JSONObject json = userFunctions.uploadFileData(guid, photoName);
在下面的代码中。 我不知道为什么会收到这个错误。 请帮助我如何解决此问题。
这是我的代码
这是发生此错误的方法
public boolean fileData(String guid, String photoName) {
Toast.makeText(getApplicationContext(), photoName, Toast.LENGTH_LONG).show();
JSONObject json = userFunctions.uploadFileData(guid, photoName);
try {
if(Integer.parseInt(json.getString("success")) != 1) {
Toast.makeText(getApplicationContext(), json.getInt("error_msg"), Toast.LENGTH_LONG).show();
//register_error.setText(json.getString("error_msg"));
return false;
}
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
这是我的uploadFileData方法
public JSONObject uploadFileData(String uid, String photoName) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("tag", file_tag));
params.add(new BasicNameValuePair("uid", uid));
params.add(new BasicNameValuePair("photoName", photoName));
JSONObject json = jsonParser.getJSONFromUrl(url, params);
Log.e("Some",json.toString());
return json;
}
这是我的JSONParser类
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
public JSONParser() {
}
public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json = sb.toString();
//Log.e("JSON", json);
} catch (Exception e) {
//e.printStackTrace();
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
return jObj;
}
}
这是我的日志
06-16 17:03:47.890: E/AndroidRuntime(12364): FATAL EXCEPTION: main
06-16 17:03:47.890: E/AndroidRuntime(12364): java.lang.NullPointerException
06-16 17:03:47.890: E/AndroidRuntime(12364): at com.zafar.login.Camera.fileData(Camera.java:216)
06-16 17:03:47.890: E/AndroidRuntime(12364): at com.zafar.login.Camera$2.run(Camera.java:186)
06-16 17:03:47.890: E/AndroidRuntime(12364): at android.os.Handler.handleCallback(Handler.java:587)
06-16 17:03:47.890: E/AndroidRuntime(12364): at android.os.Handler.dispatchMessage(Handler.java:92)
06-16 17:03:47.890: E/AndroidRuntime(12364): at android.os.Looper.loop(Looper.java:130)
06-16 17:03:47.890: E/AndroidRuntime(12364): at android.app.ActivityThread.main(ActivityThread.java:3691)
06-16 17:03:47.890: E/AndroidRuntime(12364): at java.lang.reflect.Method.invokeNative(Native Method)
06-16 17:03:47.890: E/AndroidRuntime(12364): at java.lang.reflect.Method.invoke(Method.java:507)
06-16 17:03:47.890: E/AndroidRuntime(12364): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
06-16 17:03:47.890: E/AndroidRuntime(12364): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
06-16 17:03:47.890: E/AndroidRuntime(12364): at dalvik.system.NativeStart.main(Native Method)
06-16 17:03:55.115: I/Process(12364): Sending signal. PID: 12364 SIG: 9
像在异常堆栈中那样,跟踪userFunctions是最后一个函数(在您的应用程序中),因此按照代码,userFunctions可能为null,因为json可能不是原因,因为您在uploadFileData中使用json.toString(),但跟踪直到那时才...。 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.