[Android] Glide java.lang.IllegalArgumentException: You must call this method on the main thread

MSU·2024년 4월 13일

에러케이스

목록 보기
3/14

파이어스토어 데이터베이스에서 회원정보를 가져온 후 Glide를 이용해 회원 정보에 담긴 회원 프로필이미지 주소를 이미지뷰에다가 이미지로 셋팅하려고 했다.

아래와 같이 메서드를 구현했는데

    suspend fun setUserImageView(context: Context, imageUrl:String, imageView: ImageView){
        val job1 = CoroutineScope(Dispatchers.IO).launch {
            Glide.with(context)
                .load(imageUrl)
                .into(imageView)
        }
        job1.join()
    }

코루틴스코프에서 호출하려고 하니 아래와 같은 에러가 발생했다.

"java.lang.IllegalArgumentException: You must call this method on the main thread"

해결방법은 Dispatchers.IO를 Dispatchers.Main으로 바꾸는 것이었다.
해당 메서드가 있는 클래스에서 입출력 관련 메서드를 만들어놓다보니 따라서 Dispatchers.IO로 셋팅해놓아서 발생한 일이었다.

    suspend fun setUserImageView(context: Context, imageUrl:String, imageView: ImageView){
        val job1 = CoroutineScope(Dispatchers.Main).launch {
            Glide.with(context)
                .load(imageUrl)
                .into(imageView)
        }
        job1.join()
    }
profile
안드로이드공부

0개의 댓글