제이슨의 개발이야기

[안드로이드 코틀린] android.os.NetworkOnMainThreadException 오류 OkHttp 오류 본문

오류상자

[안드로이드 코틀린] android.os.NetworkOnMainThreadException 오류 OkHttp 오류

제이쓰은 2021. 3. 16. 14:27
728x90
반응형

okhttp를 통해서 서버와 통신 객체를 만들고 실행 하다가 갑작스럽게 android.os.NetworkOnMainThreadException 이 떠서 당황스러운 적이 있습니다 

이 오류가 뜨는 이유는 메인 쓰레드 에서 통신을 했기 때문에 발생한 오류 입니다 

 

안드로이드 스튜디오 4.0 버전 부터는 메인 쓰레드 에서 통신을 하는 것을 막아 놨기 때문에 다른 스레드를 이용 해서 통신을 해야 합니다! 

이전 버전에서는 메인 쓰레드로 그냥 통신 하더라도 Exception 이 발생 하지 않았지만 사실 통신은 메인 쓰레드로 할 경우 많은 문제가 발 생 할 수 있어 4.0 버전 부터는 막아놓았습니다 ! 

이 오류를 해결하기위해 

Rx 자바 라이브러리를 이용한다던가 혹은 AsyncTask 클래스를 이용하거나 코틀린 같은 경우 코루틴을 이용해서 다른 쓰레드 에서 통신을 할 수 있도록 개발 진행 해주세요 ㅎㅎ 

728x90
반응형