Recent Posts
밍쯔와 안작고 안귀여운 에러들🖤
[Android] UndeliverableException / Rxjava 본문
왜,,, 갑자기 왜,,,, 이런 에러가 뜬금없이 떴는지 모르겠다!!
당황했지만 언제나 그렇듯 바아로 구글링
* 오류가 발생하는 가능성은?
위 오류를 해석해보면 진행 중 발생한 오류를 보내야 할 대상이 사라졌다는 것이다.
consumer가 canceled/disposed 되어 보낼 곳이 없다는 것이다.
실제 런타임에서 발생한 사례는 아래와 같이 추측할 수 있다.
- 상황 1 Timeout이 발생할 정도로 서버의 응답이 늦었다.
- 상황 2 데이터의 전달 오류로 UnknownError가 발생하였다.
위와 같은 상황 1에서 사용자는 아래와 같이 행동할 수 있다.
- 사용자는 대기가 길어 이미 back 키를 마구 눌러 화면을 떠나버렸다.
- 라이프 사이클 상 onDestroy 동작하였고, RxJava의 disposable을 동작하는 코드가 동작하였다.
나의 경우 상황2에 해당했고, 아래 코드를 추가해주고 문제 해결!
RxJavaPlugins.setErrorHandler { e ->
var error = e
if (error is UndeliverableException) {
error = e.cause
}
if (error is IOException || error is SocketException) {
// fine, irrelevant network problem or API that throws on cancellation
return@setErrorHandler
}
if (error is InterruptedException) {
// fine, some blocking code was interrupted by a dispose call
return@setErrorHandler
}
if (error is NullPointerException || error is IllegalArgumentException) {
// that's likely a bug in the application
Thread.currentThread().uncaughtExceptionHandler
.uncaughtException(Thread.currentThread(), error)
return@setErrorHandler
}
if (error is IllegalStateException) {
// that's a bug in RxJava or in a custom operator
Thread.currentThread().uncaughtExceptionHandler
.uncaughtException(Thread.currentThread(), error)
return@setErrorHandler
}
Log.w("Undeliverable exception received, not sure what to do", error)
}
'Develop > Android | iOS' 카테고리의 다른 글
[Android/Java] flamingo 업데이트 후, Execution failed for task ':app:kaptDebugKotlin' 에러 (0) | 2023.05.11 |
---|---|
[Android/Java] RecyclerView Horizontal만 안되는 문제 (1) | 2023.05.08 |
[Android/Java] scrollView, recyclerView, firstVisiblePosition = 0 (0) | 2023.04.14 |
[Android] 둥근 Toggle 커스텀 -> TabLayout 으로 ! (0) | 2023.03.13 |
[Android] 밑줄 긋는 3가지 방법 (0) | 2023.03.08 |