[KOTLIN] Parcel: unable to marshal value

·2023년 3월 26일
0

WHERE TO GO

목록 보기
1/2

발생한 에러

java.lang.RuntimeException: Parcel: unable to marshal value KeywordResult(content=spider)

KeywordActivity에서 KeywordAddActivityArrayList를 담은 intent를 호출하였을 때 발생하였다.

KeywordActivity.kt

binding.keywordAddBtnTv.setOnClickListener {
            val addIntent = Intent(this, KeywordAddActivity::class.java)
            addIntent.putExtra("keywordList", keywordList)
            startActivity(addIntent)
            keywordService.getKeyword(this, getIdx())
        }

KeywordAddActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_keyword_add)

        ...

        if (intent.hasExtra("keywordList")) {
            keywordList = intent.getSerializableExtra("keywordList") as ArrayList<KeywordResult>
        }
        else { Toast.makeText(this, "키워드를 가져오는 과정에서 오류가 발생했습니다.",Toast.LENGTH_SHORT).show() }

발생원인

배열의 데이터 타입인 KeywordResult 객체에 직렬화를 해줘야 하기 때문에 발생!
KeywordResult 타입을 정의한 클래스에 Serializable 인터페이스를 implements 해주어야 한다.

KeywordResponse.kt

data class KeywordResult(
    @SerializedName(value = "content")val content:String
) :java.io.Serializable 		# 이렇게!
profile
🔥

0개의 댓글