Задать вопрос
@Warog

Не могу получить JSON при запуске на телефоне. На ПК код работает. В чем же дело?

Моя цель получить JSON для дальнейшей его обработки. При запуске на ПК все работает, но при попытке запустить приложение на телефоне оно прекращает работу. При проверке увидел, что при выполнении программы она доходит до строки c.connect();и сразу прыгает на } finally {, пропуская все строки кода между ними. Не пойму в чем дело.

Вот код :
BufferedReader reader = null;
                try {
                    URL url = new URL("Любой адрес");
                    HttpsURLConnection c = (HttpsURLConnection) url.openConnection();
                    c.connect();
                    reader = new BufferedReader(new InputStreamReader(c.getInputStream()));
                    StringBuilder buf = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                        buf.append(line + "\n");
                    }
                       return(buf.toString());

                    textView.setText(buf);
                } finally {
                    if (reader != null) {
                        reader.close();
                    }
                }

            }catch(IOException e){
                e.printStackTrace();
            }


Заранее спасибо за помощь.
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Android-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл Android‑разработчик
    5 месяцев
    Далее
  • Академия Codeby
    Курс «Анализ защищенности приложений Андроид»
    14 недель
    Далее
Решения вопроса 1
GavriKos
@GavriKos
Микропетпроджект - домашнее облако homeCloud
99% что запускаете в UI-потоке.
В логе должен быть эксепшн что так делать нельзя.
Все операции с сетью делаются только в параллельном потоке. Мануалы в гугле есть, полно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
+1 за UI поток
также нужно указать permission INTERNET в манифесте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы