Вызов REST api на эмулятор android вызывает приложение к сбою

Я относительно новичок в студии Android. Я пытаюсь создать очень простое приложение, которое выбирает цену криптовыделения, используя бирки Bittrex api. Однако каждый раз, когда я пытаюсь получить информацию из URL-адреса, мое приложение падает. Кстати, я использую Kotlin. У меня возникли проблемы с этим, потому что я не знаю, как запустить эмулятор в режиме отладки, просто компилятор. Вот мой код:

package com.example.sebastian.cryptoapp import android.support.v7.app.AppCompatActivity import android.os.Bundle import java.net.URL import java.net.MalformedURLException import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { fun search(): String { //read in value var market = searchBar.getText().toString() //output text from URL query val result = URL("https://bittrex.com/api/v1.1/public/getticker?market=" + market).readText() return result } fun getPrice(): String { //calling search function var info = search() //split the string into a list var list: List<String> = info.split(":", "}") //access 7th index of list for last traded price return list[6] } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener { text_output.setText(getPrice()) } } } 

    Эта строка здесь: val result = URL("https://bittrex.com/api/v1.1/public/getticker?market=" + market).readText() выглядит так, будто он запускается в основном потоке. Это приведет к сбою приложения с aa NetworkOnMainThreadException .

    Здесь вы можете прочитать больше об этом исключении.

    Кроме того, убедитесь, что в вашем AndroidManifest.xml есть следующее:

    <uses-permission android:name="android.permission.INTERNET" />

    Ознакомьтесь с этими ответами для получения дополнительной информации о том, как запустить это в фоновом режиме:

    • Как исправить android.os.NetworkOnMainThreadException?
    • Android – android.os.NetworkOnMainThreadException

    Кроме того, в Котлине вы могли бы также Anko или Coroutines .

    Interesting Posts

    Котлин Поэт пустой генерации конструктора – наследование

    Kotlin – как передать нулевое значение в фрагменты метода newInstance?

    Не удалось настроить обновление плагина kotlin?

    Kotlin: onGlobalLayout не называется

    Значок приложения не отображается на устройствах с версией Android больше 4.4.2

    Не удалось найти классы Котлина в функциональном модуле из другого модуля

    Создание настраиваемой масштабируемой и масштабируемой ViewGroup, которая расширяет ConstraintLayout

    Как реализовать общую функцию интерфейса в Котлин?

    Kotlin, как получить searchView submit

    Ошибка приложения при попытке отправить SMS-сообщение

    Выражение высказывания в Котлине

    Почему строка json null, когда я передаю внутренний объект Gson (). ToJson (object) в Kotlin?

    Ошибка: ошибка преобразования байт-кода в dex: причина: метод по умолчанию или статический интерфейс, используемый без –min-sdk-version> = 24

    0xFF0000FF Целочисленный литерал не соответствует ожидаемому типу kotlin.Int

    Низкая производительность анимации параметров макета в Android

    Давайте будем гением компьютера.