I am keep getting NullPointerException error at line JSONObject json = userFunctions.uploadFileData(guid, photoName); in my code below. I have no idea why am I getting this error. Please help me how can I solve this problem.
Here is my code
here is the method in which this error occurs
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;
}
Here is my uploadedFileData method
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;
}
and here is my JSONParser class
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;
}
}
Here is my logcat
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
as in Exception stack trace userFunctions is last function (in your application) so as per code userFunctions may be null because json can’t be reason because you are using json.toString() in uploadFileData but trace is not till there…..