我嘗試使用AsyncTask註冊用戶。運行應用程序時,它會創建一個用戶並引發這樣的異常。執行doInBackground()時發生錯誤,無法創建會話
01-20 11:57:42.461: D/User Created!(2977): {"message":"Username Successfully Added!","success":1}
01-20 11:57:42.571: W/dalvikvm(2977): threadid=13: thread exiting with uncaught exception (group=0x40e19438)
01-20 11:57:42.591: E/AndroidRuntime(2977): FATAL EXCEPTION: AsyncTask #1
01-20 11:57:42.591: E/AndroidRuntime(2977): java.lang.RuntimeException: An error occured while executing doInBackground()
01-20 11:57:42.591: E/AndroidRuntime(2977): at android.os.AsyncTask$3.done(AsyncTask.java:299)
01-20 11:57:42.591: E/AndroidRuntime(2977): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
01-20 11:57:42.591: E/AndroidRuntime(2977): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
01-20 11:57:42.591: E/AndroidRuntime(2977): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
01-20 11:57:42.591: E/AndroidRuntime(2977): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-20 11:57:42.591: E/AndroidRuntime(2977): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
01-20 11:57:42.591: E/AndroidRuntime(2977): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-20 11:57:42.591: E/AndroidRuntime(2977): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-20 11:57:42.591: E/AndroidRuntime(2977): at java.lang.Thread.run(Thread.java:856)
01-20 11:57:42.591: E/AndroidRuntime(2977): Caused by: java.lang.NullPointerException
01-20 11:57:42.591: E/AndroidRuntime(2977): at com.example.rp.Register$CreateUser.doInBackground(Register.java:329)
01-20 11:57:42.591: E/AndroidRuntime(2977): at com.example.rp.Register$CreateUser.doInBackground(Register.java:1)
01-20 11:57:42.591: E/AndroidRuntime(2977): at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-20 11:57:42.591: E/AndroidRuntime(2977): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
01-20 11:57:42.591: E/AndroidRuntime(2977): ... 5 more
這是我的活動的AsyncTask
class CreateUser extends AsyncTask<String, String, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Register.this);
pDialog.setMessage("Creating User...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... arg0) {
int success;
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("email", email));
params.add(new BasicNameValuePair("password", password));
params.add(new BasicNameValuePair("dob", dob));
params.add(new BasicNameValuePair("gender", gender));
params.add(new BasicNameValuePair("mobile", mobile));
Log.d("request!", "starting");
JSONObject json = jsonParser.makeHttpRequest(url_reg, "POST", params);
Log.d("Login attempt", json.toString());
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("User Created!", json.toString());
Intent i = new Intent(Register.this, TestTab.class);
finish();
startActivity(i);
session.createLoginSession("RandB", email);
return json.getString(TAG_MESSAGE);
} else {
showAlertDialog(Register.this, "Registration Error...", "Please register again...", false);
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
pDialog.dismiss();
}
}
與用戶創建。我想創建會話並開始新的活動。誰能幫我?
是什麼線329?你也可以;如果你正在顯示因爲我看到一個'showAlertDialog'方法,就從doInbackground顯示一個對話框。同時將startActivity代碼移動到'onPostExecute' – Raghunandan
複製'success'將部分代碼複製到'onPostExecute()' –
將您的代碼啓動會話showDialog移動到'onPostExecute()' –