2014-01-08 2 views
0

Я не могу понять следующую ошибку журнала. Проверяя данные для входа в систему с помощью php MySQL, лог-код показывает ошибку. Он не в состоянии проверить, является ли пароль Войти соответствие или неLog cat показывает ошибку Null Exception

01-08 22:02:44.341: D/dalvikvm(336): GC_FOR_MALLOC freed 438K, 47% free 3581K/6663K, external 1849K/2137K, paused 86ms 
01-08 22:02:44.853: I/System.out(336): Exception : null 
01-08 22:02:45.481: W/InputManagerService(70): Window already focused, ignoring focus gain of: [email protected] 

Ниже файл Java для Android PHP Connection.

public class AndroidPHPConnectionDemo extends Activity { 
    Button b; 
    EditText et,pass; 
    TextView tv; 
    HttpPost httppost; 
    StringBuffer buffer; 
    HttpResponse response; 
    HttpClient httpclient; 
    List<NameValuePair> nameValuePairs; 
    ProgressDialog dialog = null; 

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

     b = (Button)findViewById(R.id.Button01); 
     et = (EditText)findViewById(R.id.username); 
     pass= (EditText)findViewById(R.id.password); 
     tv = (TextView)findViewById(R.id.tv); 

     b.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog = ProgressDialog.show(AndroidPHPConnectionDemo.this, "", 
         "Validating user...", true); 
       new Thread(new Runnable() { 
         public void run() { 
          login();       
         } 
         }).start();    
      } 
     }); 
    } 

    void login(){ 
     try{    

      httpclient=new DefaultHttpClient(); 
      httppost= new HttpPost("http://www.edu.jholhai.com/user_login.php"); // make sure the url is correct. 

      //add your data 
      nameValuePairs = new ArrayList<NameValuePair>(2); 

      // Always use the same variable name for posting i.e the android side variable name and php side variable name should be similar, 
      nameValuePairs.add(new BasicNameValuePair("user_name",et.getText().toString().trim())); 

      // $Edittext_value = $_POST['Edittext_value']; 
      nameValuePairs.add(new BasicNameValuePair("password",pass.getText().toString().trim())); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

      //Execute HTTP Post Request 
      response=httpclient.execute(httppost); 

      // edited by James from coderzheaven.. from here.... 
      ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
      final String response = httpclient.execute(httppost, responseHandler); 
      System.out.println("Response : " +response); 
      runOnUiThread(new Runnable() { 
       public void run() { 
        tv.setText("Response from PHP : " +response); 
        dialog.dismiss(); 
       } 
      }); 

      if(response.equalsIgnoreCase("User Found")){ 
       runOnUiThread(new Runnable() { 
        public void run() { 
         Toast.makeText(AndroidPHPConnectionDemo.this,"Login Success", Toast.LENGTH_SHORT).show(); 
        } 
       }); 

       startActivity(new Intent(AndroidPHPConnectionDemo.this, UserPage.class)); 
      }else{ 
       showAlert();     
      } 

     }catch(Exception e){ 
      dialog.dismiss(); 
      System.out.println("Exception : " + e.getMessage()); 
     } 
    } 
    public void showAlert(){ 
     AndroidPHPConnectionDemo.this.runOnUiThread(new Runnable() { 
      public void run() { 
       AlertDialog.Builder builder = new AlertDialog.Builder(AndroidPHPConnectionDemo.this); 
       builder.setTitle("Login Error."); 
       builder.setMessage("User not Found.") 
         .setCancelable(false) 
         .setPositiveButton("OK", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
          } 
         });      
       AlertDialog alert = builder.create(); 
       alert.show();    
      } 
     }); 
    } 
} 
+1

Пожалуйста, включите соответствующий код. Все, что мы можем сказать об этом фрагменте журнала, где-то в вашем коде есть 'System.out.println (« Исключение: null ») или эквивалент. – laalto

ответ

0
System.out.println("Response : " +response); 
     runOnUiThread(new Runnable() { 
      public void run() { 
       tv.setText("Response from PHP : " +response); 
       dialog.dismiss(); // <=== NullPointerException 
      } 
     }); 

Вы пытаетесь закрыть окно, которое создается в showAlert() метод, но метод вызывается после выполнения

dialog.dismiss(); 
+0

По-прежнему та же проблема существует. –

+0

Почему вы отклоняете диалог даже перед его отображением? – akashsr

+0

Теперь я изменил код, но он показал ту же ошибку. –

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