Приложение вылетает после установки сопрограммы - Android - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь сделать задержку перед выполнением некоторого кода в моей игре. У меня есть код, который прекрасно работает без рутины, но как только я введу:

GlobalScope.launch {
//code
}

или

GlobalScope.launch {
delay(3000L)
//code
}

Приложение полностью вылетает. Самое странное, что иногда это работает, а иногда нет. Почему это так?

Это трассировка стека:

2020-03-14 10:29:18.965 13369-13421/com.example.notagame E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-1
    Process: com.example.notagame, PID: 13369
    android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
        at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:8191)
        at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:1420)
        at android.view.View.requestLayout(View.java:24454)
        at android.view.View.requestLayout(View.java:24454)
        at android.view.View.requestLayout(View.java:24454)
        at android.view.View.requestLayout(View.java:24454)
        at android.view.View.requestLayout(View.java:24454)
        at android.view.View.requestLayout(View.java:24454)
        at androidx.constraintlayout.widget.ConstraintLayout.requestLayout(ConstraintLayout.java:3172)
        at android.view.View.requestLayout(View.java:24454)
        at android.widget.TableLayout.requestLayout(TableLayout.java:228)
        at android.view.View.requestLayout(View.java:24454)
        at android.view.View.requestLayout(View.java:24454)
        at android.view.View.setForeground(View.java:23052)
        at com.example.notagame.Excel$onCreate$1$1.invokeSuspend(Excel.kt:140)
        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
        at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:241)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
        at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
        at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:740)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...