I am trying to get login details using asyntask in android but it is giving me errors occasionally. Sometimes it goes through sometimes it does not. It keeps directing me to my Jsonobject in my post execute. and i don know why.
This is my java class.
  AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() {
                protected void onPreExecute() {
                    super.onPreExecute();
                    pDialog = new ProgressDialog(Maint.this);
                    pDialog.setMessage("getting detail...");
                    pDialog.setIndeterminate(false);
                    pDialog.setCancelable(true);
                    pDialog.show();
                }
                @Override
                protected String doInBackground(Void... params) {
                    try {
                        RequestBody formBody = new FormBody.Builder()
                                .add("email", acct.getEmail())
                                .add("google_id", regId)
                                .build();
                        final Request request = new Request.Builder()
                                .url(log)
                                .post(formBody)
                                .build();
                        Response response;
                        response = client.newCall(request).execute();
                        return   response.body().string();
                    } catch (Exception e) {
                        e.printStackTrace();
                        return null;
                    }
                }
                @Override
                protected void onPostExecute(String s) {
                    super.onPostExecute(s);
                    if (pDialog != null) {
                        pDialog.dismiss();
                    }
                    String jsonData = s;
                    try {
                        JSONObject Jobject = new JSONObject(jsonData);
                        String pic = "";
                        if (acct.getPhotoUrl() == null || acct.getPhotoUrl().toString().isEmpty() || acct.getPhotoUrl().toString().contentEquals("")) {
                            pic = "https://lh3.googleusercontent.com/-5O1D0RBwhGE/AAAAAAAAAAI/AAAAAAAAAUg/Lm43fa7Sbgg/s36-p-k-rw-no/photo.jpg";
                        } else {
                            pic = acct.getPhotoUrl().toString();
                        }
                        SharedPreferences sp = PreferenceManager
                                .getDefaultSharedPreferences(Maint.this);
                        SharedPreferences.Editor edit = sp.edit();
                        edit.putString("firstname", acct.getGivenName());
                        edit.putString("lastname", acct.getFamilyName());
                        edit.putString("email", acct.getEmail());
                        edit.putString("url", pic);
                        edit.putString("google_id",regId);
                        edit.putString("check",Jobject.getString("success"));
                        edit.commit();
                        Intent uo = new Intent(getApplicationContext(), LoginActivity.class);
                        finish();
                        startActivity(uo);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            };
            asyncTask.execute();
This is my error
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
                                                                                   at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
                                                                                   at org.json.JSONTokener.nextValue(JSONTokener.java:94)
                                                                                   at org.json.JSONObject.<init>(JSONObject.java:156)
                                                                                   at org.json.JSONObject.<init>(JSONObject.java:173)
                                                                                   at com.obi.thinker.fringes.Maint$2.onPostExecute(Maint.java:223)
                                                                                   at com.obi.thinker.fringes.Maint$2.onPostExecute(Maint.java:182)
                                                                                   at android.os.AsyncTask.finish(AsyncTask.java:651)
                                                                                   at android.os.AsyncTask.-wrap1(AsyncTask.java)
                                                                                   at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
                                                                                   at android.os.Handler.dispatchMessage(Handler.java:111)
                                                                                   at android.os.Looper.loop(Looper.java:207)
                                                                                   at android.app.ActivityThread.main(ActivityThread.java:5683)
                                                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
                                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
 
     
    