📱| Android/✅ | 에러해결

[Android, Kotlin] java.lang.ClassCastException: activity cannot be cast to interface 해결

immgga 2022. 6. 7. 22:49
반응형

오늘의 오류는 클래스 간의 캐스팅이 잘 되지 않았을때 발생하는 에러인 ClassCastException을 해결했던 과정을 포스팅 해보겠다.

 

에러 본문

 

FreeBoardFragment 111번째 줄

override fun onAttach(context: Context) {
    super.onAttach(context)

    try {
        postImageData = activity as PostImageData
    } catch (e: ClassCastException) {
        Log.e("ERROR", e.printStackTrace().toString(), e.cause)
    }
}

 

interface를 이용해 fragment에서 activity로 데이터를 전달하는 과정에서 onAttach 메소드를 사용하게 되는데, 이 부분에서 오류가 났었다.

 

해결했던 방법

override fun onAttach(activity: Activity) {
    super.onAttach(activity)

    try {
        Log.d("SUCCESS", "onAttach: success")
        postImageData = activity as PostImageData
    } catch (e: ClassCastException) {
        Log.e("ERROR", e.printStackTrace().toString(), e.cause)
    }
}

onAttach의 생성자 부분을 context 에서 activity로 변경해 주었다.

728x90
반응형