마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

navigation safe args에서 Too many arguments 오류

0 추천
    <fragment
        android:id="@+id/memoListFragment"
        android:name="com.sks.mymemo.memolist.MemoListFragment"
        android:label="MemoListFragment">
        <action
            android:id="@+id/action_memoListFragment_to_addMemoFragment"
            app:destination="@id/addMemoFragment"
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right" />
        <action
            android:id="@+id/action_memoListFragment_to_updateMemoFragment"
            app:destination="@id/updateMemoFragment"
            app:enterAnim="@anim/slide_in_right"
            app:exitAnim="@anim/slide_out_left"
            app:popEnterAnim="@anim/slide_in_left"
            app:popExitAnim="@anim/slide_out_right">
        </action>
        <argument
            android:name="memoTimeMill"
            app:argType="long" />
    </fragment>

 

override fun onBindViewHolder(holder: ItemMemoListViewHolder, position: Int) {
        val item = data[position]
        holder?.bind(item)

        holder.itemView.setOnClickListener(object : View.OnClickListener{
            override fun onClick(v: View?) {
                val action = MemoListFragmentDirections.actionMemoListFragmentToUpdateMemoFragment(item.dateTimeMill)
                v!!.findNavController().navigate(action)

            }
        })
}

safe args로 Long타입 인자를 전달하고 싶은데 자꾸 아래 val action에서 끝에 인자로 long타입 변수인 

item.dateTimeMill을 넣으면 아래와 같은 오류가 나오네요

뭐가 문제일까요ㅠㅠㅠ

따깡 (240 포인트) 님이 10월 8일 질문
따깡님이 10월 8일 수정
SafeArgs plugin 은 컴파일 타입에 클래스를 만들기 때문에 클래스 생성에 문제가 있을 가능성이 있습니다. 어노테이션 프로세서를 사용하는 라이브러리나 이런 종류의 플러그인들은 이런 문제가 발생하곤 합니다. Clean build를 하거나  File > Invalidate cache & restart 를 해보세요. 앱도 다시 설치하시구요.
컴파일시에 히든 클래스들을 생성해주는 것들은 가능하면 많이 사용하지 않는게  정신건강에 이로울 때가 많습니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...