Следующие две строки фактически дают вам знать, что это за ошибка:
11-10 11:31:22.036: E/AndroidRuntime(496): Caused by: android.os.NetworkOnMainThreadException
11-10 11:31:22.036: E/AndroidRuntime(496): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)
Кажется, что вы включили StrictMode
, в результате чего он вызывает исключение всякий раз, когда вы используете поток GUI внеправильный путь (т.е. выполняйте сетевые запросы, как вы делали выше).
Решение состоит в том, чтобы начать использовать AsyncTask
s, чтобы ваш сетевой трафик отправлялся и обрабатывался в другом «потоке»:
public FileParseTask extends AsyncTask<Void, Void, Boolean> {
@Override
protected void onPreExecute() {
//Show dialogs here or similar
}
@Override
protected Boolean doInBackground(Void ... arg0) {
//Do your actual network operations here, as well as parsing
}
@Override
protected void onPostExecute(Boolean result) {
//Remove dialogs if any, and other "GUI"-updates that follow your parsing-
}
}
Надеюсь, что это поможет вам понять, почему происходит ошибка, и как вы можете предотвратить ее в будущем.