在异步任务的后台提交注册崩溃

submitting registration crashes at do in background of async task

我想将从注册表中获取的详细信息提交到 mySQL 数据库,应用程序在 doInBackground 中崩溃,出现一些线程池执行程序错误。

我的logcat代码是:

05-01 19:38:50.059: W/dalvikvm(19643): threadid=11: thread exiting with uncaught exception (group=0x417a9da0)
05-01 19:38:50.059: E/AndroidRuntime(19643): FATAL EXCEPTION: AsyncTask #1
05-01 19:38:50.059: E/AndroidRuntime(19643): Process: com.example.intpolisbasic, PID: 19643
05-01 19:38:50.059: E/AndroidRuntime(19643): java.lang.RuntimeException: An error occured while executing doInBackground()
05-01 19:38:50.059: E/AndroidRuntime(19643):    at android.os.AsyncTask.done(AsyncTask.java:300)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at android.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at java.lang.Thread.run(Thread.java:841)
05-01 19:38:50.059: E/AndroidRuntime(19643): Caused by: java.lang.NullPointerException
05-01 19:38:50.059: E/AndroidRuntime(19643):    at com.example.intpolisbasic.RegisterActivity$SendHttp.doInBackground(RegisterActivity.java:552)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at com.example.intpolisbasic.RegisterActivity$SendHttp.doInBackground(RegisterActivity.java:1)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at android.os.AsyncTask.call(AsyncTask.java:288)
05-01 19:38:50.059: E/AndroidRuntime(19643):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-01 19:38:50.059: E/AndroidRuntime(19643):    ... 4 more

我的异步任务:

class SendHttp extends AsyncTask<String, String, String> {



         boolean failure = false;

         @Override

                 protected void onPreExecute() {

                     super.onPreExecute();

                                 dialog = new ProgressDialog(RegisterActivity.this);
                                 dialog.setMessage("Processing Request...");
                                 dialog.setIndeterminate(false);
                                 dialog.setCancelable(true);
                                 dialog.show();


                 }
         @Override

       protected String doInBackground(String... args) {


                     try{
                         int success;
                         List<NameValuePair> params = new ArrayList<NameValuePair>();
                            params.add(new BasicNameValuePair("surname", reg_surname.getText().toString()));
                            params.add(new BasicNameValuePair("firstname", reg_firstname.getText().toString()));
                            params.add(new BasicNameValuePair("middlename", reg_midname.getText().toString()));
                            params.add(new BasicNameValuePair("gender", genderBtn.getText().toString()));
                            params.add(new BasicNameValuePair("dayy", dayy));
                            params.add(new BasicNameValuePair("yearr", yearr));
                            params.add(new BasicNameValuePair("mother_name", reg_mmname.getText().toString()));
                            params.add(new BasicNameValuePair("nationality", spin_nationality.getSelectedItem().toString()));
                            params.add(new BasicNameValuePair("sog", reg_sog.getText().toString()));
                            params.add(new BasicNameValuePair("lga", reg_lga.getText().toString()));
                            params.add(new BasicNameValuePair("permanent_address", reg_permhomeaddress.getText().toString()));
                            params.add(new BasicNameValuePair("contact_address", reg_residentaddress.getText().toString()));
                            params.add(new BasicNameValuePair("city", reg_city.getText().toString()));
                            params.add(new BasicNameValuePair("state", reg_state.getText().toString()));
                            params.add(new BasicNameValuePair("email", reg_email.getText().toString()));
                            params.add(new BasicNameValuePair("phone", reg_phoneno.getText().toString()));
                            params.add(new BasicNameValuePair("password1", reg_password.getText().toString()));
                            params.add(new BasicNameValuePair("kin1_fullnames", etnxt1fullname.getText().toString()));
                            params.add(new BasicNameValuePair("kin1_address", etnxt1conadd.getText().toString()));
                            params.add(new BasicNameValuePair("kin1_relationship", spin_nxt1relat.getSelectedItem().toString()));
                            params.add(new BasicNameValuePair("kin1_phone", etnxt1phoneno.getText().toString()));
                            params.add(new BasicNameValuePair("kin2_fullnames", etnxt2fullname.getText().toString()));
                            params.add(new BasicNameValuePair("kin2_address", etnxt2conadd.getText().toString()));
                            params.add(new BasicNameValuePair("kin2_relationship", spin_nxt2relat.getSelectedItem().toString()));
                            params.add(new BasicNameValuePair("kin2_phone", etnxt2phoneno.getText().toString()));
                            params.add(new BasicNameValuePair("monthh", month));
                            params.add(new BasicNameValuePair("pro_pic", pro_pic));

                           Log.d("request!", "starting");
                         JSONObject json = jsonParse.makeHttpRequest(REGISTER_URL, "POST", params);
                     Log.d("Attempting Registration", json.toString());

                     success = json.getInt(TAG_SUCCESS);

                  if(success == 2){
                            Log.d("Registration Successful", json.getString(TAG_MESSAGE));
                                return json.getString(TAG_MESSAGE);
                        }
                  else{
                        Log.d("Registration Error", json.getString(TAG_MESSAGE));
                        return json.getString(TAG_MESSAGE);
                      }


                } catch (JSONException e) {

                    e.printStackTrace();
                }
                return null;


}

protected void onPostExecute(String file_url) {
dialog.dismiss();
if (file_url!= null){
   showAlertDialog(RegisterActivity.this, "Success", file_url, true);
} else{
    Toast.makeText(RegisterActivity.this, "null", Toast.LENGTH_SHORT).show();
}
}
protected String doInBackground(String... setparams()) {
                        JSONObject json = jsonParse.makeHttpRequest(REGISTER_URL, "POST", setparams());
     }
     public String setParam(){
     List<NameValuePair> params = new ArrayList<NameValuePair>();
     params.add(new BasicNameValuePair("surname", reg_surname.getText().toString()));

....
return params;
}

您在 doinbackground 之外设置了参数。