2015-06-30 3 views
1

Я пытаюсь отправить некоторые параметры для метода post из класса, который расширяет AsyncTask, и это не работает, потому что я получить сообщение об ошибке.E/AndroidRuntime: FATAL EXCEPTION: AsyncTask # 1 java.lang.RuntimeException: Произошла ошибка во время выполнения doInBackground()

это мой LogCat

06-30 20:59:14.159  614-632/com.example.aastudillo.cats 
E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1 
    java.lang.RuntimeException: An error occured while executing doInBackground() 
      at android.os.AsyncTask$3.done(AsyncTask.java:278) 
      at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
      at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
      at java.lang.Thread.run(Thread.java:856) 
     Caused by: java.lang.NullPointerException 
      at com.example.aastudillo.cats.Login$ValidatingLogin.doInBackground(Login.java:110) 
      at com.example.aastudillo.cats.Login$ValidatingLogin.doInBackground(Login.java:93) 
      at android.os.AsyncTask$2.call(AsyncTask.java:264) 
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
            at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
            at java.lang.Thread.run(Thread.java:856) 

login.java

public class Login extends Activity { 


    public static final String url = "http://192.168.0.217:80/Services/WebService.php"; 
    private static final String TAG_SUCCESS = "success"; 
    private static final String TAG_MESSAGE = "message"; 

    private ProgressDialog pDialog; 
    Button btnLogin; 
    Button btnLinkToRegister; 
    EditText emailEditText; 
    EditText PasswordEditText; 
    TextView Vista; 

    HttpHandler httpHandler = new HttpHandler(); 

    @Override 
    public void onPause() { 
     super.onPause(); 
     if (pDialog != null) { 
      pDialog.dismiss(); 
     } 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     Vista = (TextView) findViewById(R.id.Vista); 
     emailEditText = (EditText) findViewById(R.id.email); 
     PasswordEditText = (EditText) findViewById(R.id.password); 
     btnLogin = (Button) findViewById(R.id.btnLogin); 
     btnLinkToRegister = (Button) findViewById(R.id.btnLinkToRegisterScreen); 
     btnLogin.setOnClickListener(new Button.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       btnLogin.setClickable(false); 
       new ValidatingLogin().execute(); 
      } 
     }); 
     btnLinkToRegister.setOnClickListener(new Button.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(Login.this, RegisterActivity.class); 
       startActivity(i); 

      } 
     }); 

    } 
     @Override 

     public boolean onCreateOptionsMenu (Menu menu){ 
      getMenuInflater().inflate(R.menu.menu_login, menu); 
      return true; 

     } 


     public class ValidatingLogin extends AsyncTask<String, String, String> { 
      int success; 

      protected void onPreExecute() { 
       super.onPreExecute(); 
       pDialog = new ProgressDialog(Login.this); 
       pDialog.setMessage("Espere..."); 
       pDialog.setIndeterminate(false); 
       pDialog.setCancelable(true); 
       pDialog.show(); 

      } 


      protected String doInBackground(String... params) { 


       String SendPersonal = emailEditText.getText().toString(); 
       String SendPassword = PasswordEditText.getText().toString(); 
       try { 
        List<NameValuePair> Params = new ArrayList <NameValuePair>(); 
        Params.add(new BasicNameValuePair("Cod_Personal", SendPersonal)); 
        Params.add(new BasicNameValuePair("Password", SendPassword)); 


        JSONObject J = httpHandler.makeHttpRequest(url,"POST", Params); 

        success = J.getInt(TAG_SUCCESS); 
        if (success == 1) { 

         SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(Login.this); 
         SharedPreferences.Editor edit = prefs.edit(); 
         edit.putString("Cod_Personal", SendPassword); 
         edit.commit(); 

         Intent i = new Intent(Login.this, activity_actividad_principal.class); 
         finish(); 
         startActivity(i); 
         return J.getString(TAG_MESSAGE); 

        } else { 


         return J.getString(TAG_MESSAGE); 
        } 


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

      protected void onPostExecute(String file_url) { 


       pDialog.dismiss(); 
       if (file_url != null) { 
        Toast.makeText(getApplicationContext(), file_url, Toast.LENGTH_LONG).show(); 
       } else { 

       } 
      } 
     } 


    } 

httphandler.java

public class HttpHandler{ 

     static InputStream is = null; 
     static JSONObject Jobj = null; 
     static String json=""; 

     //Constructor 
     public HttpHandler(){ 


     } 


    public JSONObject getJSONFromUrl(final String url){ 

     try{ 
      HttpClient httpClient = new DefaultHttpClient(); 
      HttpPost httpPost = new HttpPost(url); 

      HttpResponse httpResponse = httpClient.execute(httpPost); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      is = httpEntity.getContent(); 
     } catch (UnsupportedEncodingException e) { 

     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     try{ 
      String line = null; 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
       StringBuilder sb = new StringBuilder(); 
        while((line = reader.readLine())!=null){ 

         sb.append(line+"\n"); 
        } 
       is.close(); 
      json= sb.toString(); 

     }catch (Exception e){ 
      Log.e("TAG",""+ e.toString()); 
     } 

     try{ 
      Jobj = new JSONObject(json); 

     }catch (JSONException e){ 

      Log.e("JSON Parser","Error Parsing Data" +e.toString()); 
     } 
     return Jobj; 
    } 


    public JSONObject makeHttpRequest(String url,String method,List<NameValuePair> Params){ 
      try{ 
       if (method == "POST"){ 
        HttpClient httpClient = new DefaultHttpClient(); 
        HttpPost httpPost = new HttpPost(url); 
        httpPost.setEntity(new UrlEncodedFormEntity(Params)); 

        HttpResponse httpResponse = httpClient.execute(httpPost); 
        HttpEntity httpEntity = httpResponse.getEntity(); 
        is = httpEntity.getContent(); 

       }else if (method == "GET"){ 

        HttpClient httpClient = new DefaultHttpClient(); 
        String ParamString = URLEncodedUtils.format(Params,"utf-8"); 
        url += "?" + ParamString; 
        HttpGet httpGet = new HttpGet(url); 

        HttpResponse httpResponse = httpClient.execute(httpGet); 
        HttpEntity httpEntity = httpResponse.getEntity(); 
        is = httpEntity.getContent(); 
       } 

      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } catch (ClientProtocolException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(
        is, "iso-8859-1"), 8); 
      StringBuilder sb = new StringBuilder(); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       sb.append(line + "\n"); 
      } 
      is.close(); 
      json = sb.toString(); 
     } catch (Exception e) { 
      Log.e("Buffer Error", "Error converting result " + e.toString()); 
     } 

     // try parse the string to a JSON object 
     try { 
      Jobj = new JSONObject(json); 
     } catch (JSONException e) { 
      Log.e("JSON Parser", "Error parsing data " + e.toString()); 
     } 

     // return JSON String 
     return Jobj; 



    } 

} 

ответ

0

Ваш HttpHandler возвращает нуль, который вызывает NPE. Причина, по которой он возвращает null, должен быть в журнале раньше, но вы его пропустили.

Также я видел, что вы пытаетесь запустить или закончить Activity из фонового потока, который запрещен.

Смежные вопросы

 Смежные вопросы