Данный вопрос уже был задан и имеет решение:
Занимаюсь созданием клиент-сервера на сокетах при помощи java, с той особенностью, что в моем случае клиентом выступает приложение написанное на android.
И если с сервером все хорошо(проверял его работу через telnet), то с клиентом выходят большие проблемы.
При попытке получить локальный хост: InetAddress ipAddress = InetAddress.getLocalHost();
Выдает следующую ошибку(если через try-catch попросить вывести в лог):
android.os.NetworkOnMainThreadException
Подключал работу с сетью в манифест-файл, но не помогло: < uses-permission android:name="android.permission.INTERNET"/>
Перерыл форумы, но подобной проблемы не нашел, поэтому обращаюсь сюда:)
Ваш код ошибки сам за себя говорит - нельзя использовать в главном потоке работу с сетью.
Вы можете запустить в отдельном потоке используя Thread:
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
//ваш код работы с сетью
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
Можете разрешить работу в основном потоке (категорически не рекомендуется):
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Можете использовать AsyncTask:
class RetrieveFeedTask extends AsyncTask<Void, Void, Void> {
private Exception exception;
protected RSSFeed doInBackground(Void... void) {
try {
//ваш код работы с сетью
} catch (Exception e) {
this.exception = e;
return null;
}
}
protected void onPostExecute(Void void) {
// здесь можете обрабатывать ошибки при работе с сетью
}
}
AsyncTask по-русски: Класс AsyncTaskThread по-русски: Потоки. Класс Thread и интерфейс RunnableИз основного потока нельзя отправлять запросы. Только через AsyncTask, как сказано выше :)
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники