在异步任务的后台提交注册崩溃
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 之外设置了参数。
我想将从注册表中获取的详细信息提交到 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 之外设置了参数。