2013-11-17 9 views
2

Может кто-нибудь помочь мне с этой ошибкой, пожалуйста, выберите значения из базы данных MySQL для Android, когда я запустить приложение и поиск ID, он всегда говорил (Invalid IP-адрес) ...Ошибка NullPointerException: блокировка == нуль

у меня есть PHP-файл на веб-сервере, который подключается к базе данных WampServer и извлекает значения, которые возвращаются в Android приложение ..

String id 
String name; 
InputStream is=null; 
String result=null; 
String line; 

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

    final EditText e_id=(EditText) findViewById(R.id.editText1); 
    Button select=(Button) findViewById(R.id.button1); 
    select.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

     id=e_id.getText().toString(); 
     select(); 
    } 
}); 
} 

public void select() 
{ 
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 

nameValuePairs.add(new BasicNameValuePair("id",id)); 

    try 
    { 
    HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("http://10.0.2.2/test/select.php"); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 
     Log.e("pass 1", "connection success "); 
} 
    catch(Exception e) 
{ 
     Log.e("Fail 1", e.toString()); 
     Toast.makeText(getApplicationContext(), "Invalid IP Address", 
     Toast.LENGTH_LONG).show(); 
}  

    try 
    { 
     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(); 
      result = sb.toString(); 
     Log.e("pass 2", "connection success "); 
} 
    catch(Exception e) 
    { 
    Log.e("Fail 2", e.toString()); 
}  

try 
    { 
     JSONObject json_data = new JSONObject(result); 
     name=(json_data.getString("name")); 
    Toast.makeText(getBaseContext(), "Name : "+name, 
     Toast.LENGTH_SHORT).show(); 
    } 
    catch(Exception e) 
    { 
     Log.e("Fail 3", e.toString()); 
    } 
} 

LogCat Ошибка:

11-17 02:40:58.059: E/Fail 1(1073): android.os.NetworkOnMainThreadException 
11-17 02:40:58.079: E/Fail 2(1073): java.lang.NullPointerException: lock == null 
11-17 02:40:58.079: E/Fail 3(1073): java.lang.NullPointerException 

любая помощь оценить d ...

ответ

2
E/Fail 1(1073): android.os.NetworkOnMainThreadException 

Эта ошибка возникает из-за запуска ваших звонков подключения к сети (как httpclient) на резьбе вашего основного вида деятельности в. Чтобы избавиться от этого, вам нужно использовать другой поток для этих вызовов. Простым способом сделать это будет использование Async Task

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