2014-01-20 5 views
0

Я попытался зарегистрировать пользователя с помощью 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(); 
    } 
} 

с созданием пользователя. Я хочу создать сеанс и начать новую работу. Может кто-нибудь мне помочь?

+2

что линия 329? также вы можете: t показать диалог из doInbackground, если вы показываете coz, я вижу метод 'showAlertDialog'. Также переместите код startActivity в 'onPostExecute' – Raghunandan

+1

копию' success' check part в 'onPostExecute()' –

+0

Переместите свой код для начальной сессии showDialog в 'onPostExecute()' –

ответ

0

ли метод

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); 

      } 
+0

нет, он возвращает исключение nullpoint. – anuruddhika

+0

@anuruddhika post, что такое строка 329. – Raghunandan

+0

@Raghunandan session.createLoginSession («RandB», электронная почта); – anuruddhika

0

изменить задачу() эту работу в onPostExecute:

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) { 

       session.createLoginSession("RandB", email); 

       return json.getString(TAG_MESSAGE); 

      } else { 
       return null; 
      } 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
      if(result!=null){ 
       Intent i = new Intent(Register.this, TestTab.class); 

       startActivity(i); 
     session.createLoginSession("RandB", email); 
      finish(); 
     }else{ 
showAlertDialog(Register.this, "Registration Error...", "Please register again...", false); 
} 
     pDialog.dismiss(); 
    } 
} 
Смежные вопросы