Я создал класс, который извлекает данные из базы данных MySQL и отображает их в различные текстовые редакторы, как показано ниже. При тестировании приложения на моем локальном хосте он работает и извлекает данные из массива JSON через файл PHP, однако, когда я изменяю URL-адрес HTTPRequest с локального хоста http://10.0.2.2/concurency/get_user_details_test.php удаленному хосту, http://concurrenceypule.netau.net/get_user_details_test.php приложение, запущенное на версии 2.3, сокрушительно. Вся информация о подключении удаленной базы данных работает, так как она правильно отображает данные через веб-браузер. Что может вызвать дробление приложения и как его можно разрешить.удаленное подключение к серверу в приложении android
private static final String url_product_detials = "http://concurrenceypule.netau.net/get_user_details_test.php";
class GetProductDetails extends AsyncTask<String, String, String> {
protected String doInBackground(String... params) {
final String user_name2 = "paul";
runOnUiThread(new Runnable() {
public void run() {
int success;
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("user_name",user_name2));
JSONObject json = jsonParser.makeHttpRequest(
url_product_detials, "GET", params);
Log.d("Single Product Details", json.toString());
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
JSONArray productObj = json
.getJSONArray(TAG_PRODUCT);
JSONObject product = productObj.getJSONObject(0);
txtName = (EditText) findViewById(R.id.username);
txtcontact = (EditText) findViewById(R.id.tv_contact);
txtemail = (EditText) findViewById(R.id.tv_email);
txtaddress = (EditText) findViewById(R.id.et_Address);
txtName.setText(product.getString(TAG_NAME));
txtcontact.setText(product.getString(TAG_contact));
txtemail.setText(product.getString(TAG_email));
txtaddress.setText(product.getString(TAG_address));
}else{
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
return null;
}
protected void onPostExecute(String file_url) {
pDialog.dismiss();
}
}
Это некоторые из ошибок. E/AndroidRuntime (11784): android.os.NetworkOnMainThreadException android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork (StrictMode.java:1156) java.net.InetAddress.lookupHostByName (InetAddress.java:385) –
Это не верно , Использование AsyncTack не имеет смысла. Вы должны выполнить свою работу над методом doBackground() и вызвать onProgressUpdate() для обновления интерфейса. onProgressUpdate() работает в потоке пользовательского интерфейса. –
удалите сбегаемую внутреннюю поверхность. Вам не нужно его там – dreamer1989