상세 컨텐츠

본문 제목

안드로이드(ANDROID) - Only the original thread that created a view hierarchy can touch its views.

Android 자료실/기타 버그

by Victorywskim 2020. 5. 12. 15:10

본문

반응형

최근 앱을 수정하면서 타이머를 통해 UI를 수정하는 코드를 추가하였는데 강제 종료가 발생하였다 ㅠㅠ

 

문제 해결을 위해 구글링을 하다 보니 결과가 참 허무했다...ㅋㅋㅋㅋㅋ

 

타이머도 결국 쓰레드인데 메인 쓰레드도 아닌 녀석이 UI를 수정하려고 하니 충돌로 보답한 것이다..ㅎㅎㅎ

 

수정함에 있어서 핸들러를 쓴다던지 뭐 여러 가지 방법이 있겠지만.. 번거로운 건 딱 질색이어서 runOnUiThread로 간단하게 해결하였다.

getActivity().runOnUiThread(() -> setTrackingButtonVisibility());

 

getActivity는 프레그먼트에서 사용하였기 때문에 추가한 것이고 액티비티에서 사용한다면 제외하면 된다.

 

그렇게 해서 업데이트를 진행하고 다음날 크래시리틱스를 열어보았더니 NullPointException이 뙇!!! 하고 올라와있었다.

 

해당 코드를 확인해보니 밑줄로 아래와 같은 경고가 있었다.

method invocation 'runOnUiThread' may produce 'NullPointException'

 

친절하게 NullPointException 발생할 수도 있어요!라고 알려줬는데....

그래서 일단 try catch로 임시 조치를 해두었다...

 

NullPointException이 발생되는지는 모르겠지만... 다음부터는 이런 경고를 무시해서는 안될듯하다..

 

 

참고 자료 : https://dreamaz.tistory.com/268

 

안드로이드 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy

안녕하세요. 개발자 드리머즈입니다. 안드로이드 개발 중에 이슈가 발생해 정리합니다. 문제 현상 어플을 실행시키면 아래의 에러가 발생하면서 어플이 종료됐습니다. 1 2 3 4 5 6 7 FATAL EXCEPTION: Ok

dreamaz.tistory.com

 

728x90
반응형

관련글 더보기