简体   繁体   中英

FATAL EXCEPTION: AsyncTask #1 java.lang.RuntimeException: An error occurred while executing doInBackground() error

Sorry, this is the second time posting this issue, my code was working fine a few years ago, when I tried to run it now, I got this issue

08-07 06:04:44.801: E/AndroidRuntime(20161): FATAL EXCEPTION: AsyncTask #1
08-07 06:04:44.801: E/AndroidRuntime(20161): Process: com.parents.track, PID: 20161
08-07 06:04:44.801: E/AndroidRuntime(20161): java.lang.RuntimeException: An error occurred while executing doInBackground()
08-07 06:04:44.801: E/AndroidRuntime(20161):    at android.os.AsyncTask$3.done(AsyncTask.java:309)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at java.lang.Thread.run(Thread.java:818)
08-07 06:04:44.801: E/AndroidRuntime(20161): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int org.json.JSONObject.getInt(java.lang.String)' on a null object reference
08-07 06:04:44.801: E/AndroidRuntime(20161):    at com.parents.track.LoginActivity$LogIn.doInBackground(LoginActivity.java:89)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at com.parents.track.LoginActivity$LogIn.doInBackground(LoginActivity.java:1)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at android.os.AsyncTask$2.call(AsyncTask.java:295)
08-07 06:04:44.801: E/AndroidRuntime(20161):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
08-07 06:04:44.801: E/AndroidRuntime(20161):    ... 4 more

class LogIn extends AsyncTask<String,Void,String >{

    private JsonParser jsonParser;

    @Override
    protected String doInBackground(String... arg0) {
        jsonParser = new JsonParser();
        String url = "http://localhost/track/login.php?phone=";
        StringBuilder urlStringBuilder = new StringBuilder(url);
        urlStringBuilder.append(arg0[0]);
        SessionManager sessionManager=new SessionManager(context);

        JSONObject json = jsonParser.getJsonObject(urlStringBuilder, "GET");
        int isLongedIn=0;
        try {
            isLongedIn=json.getInt("LogedIn");
            if(isLongedIn==1){
            String sesion=json.getString("Message");
            sessionManager.createLoginSession(sesion);
            Intent intent=new Intent(context,WelcomeActivity.class);
            Bundle extra = new Bundle();
            extra.putString("HP",phone.getText().toString());
             intent.putExtras(extra);
            startActivity(intent);
            }else{
                Intent intent=new Intent(context,LoginActivity.class);
                startActivity(intent);
            }

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            Log.w("Json Error", e.toString());
            e.printStackTrace();
        }


        return null;
    }
}

Check your server response,it can't find "LogedIn" in this line: isLongedIn=json.getInt("LogedIn"); Add a default isLongedIn=json.getInt("LogedIn",0); and Check response for have a record by name "LogedIn"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM