관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[안드로이드] * What went wrong:Execution failed for task ':app:kaptDebugKotlin'.> A fail 본문

안드로이드/코틀린 & 아키텍처 & Recent

[안드로이드] * What went wrong:Execution failed for task ':app:kaptDebugKotlin'.> A fail

막무가내막내 2020. 5. 22. 20:20
728x90

 

 

[2021-04-13 업데이트]

맨 밑 마지막 내용을 참고해주세요 :) 

 

 

 

 

 

 

제목 그대로 빌드시 나는 에러입니다.

 

 

4시간째 삽질중인데 도저히 안고쳐집니다.

구글링하고 모든 방법을 다해봤지만 안됩니다. 뭐 때문에 나는지도 모르겠고요. stacktrace 에러를 다 보고 구글링했는데 딱히 해결법이 안나오는중..

 

일단 기록으로 남깁니다.

 

 

도저히 해결이 안돼서 친구보고온 담에 다시 정신차리고 봤더니

@BindingAdapter("setItems")
fun RecyclerView.setAdapterItems(items: List<BachelorNotice>?) {
    with((adapter as BachelorAdapter)) {
        this.clear()
        items?.let { this.addItems(it) }
    }
}

 

[수정]

 <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rv_bachelors"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clipToPadding="false"
            android:orientation="vertical"
            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
            bind:bachelorEndlessScroll="@{vm}"
            bind:setBachelorItems="@{vm.noticeList}" />
@BindingAdapter("setBachelorItems")
fun RecyclerView.setBachelorAdapterItems(items: List<BachelorNotice>?) {
    with((adapter as BachelorAdapter)) {
        this.clear()
        items?.let { this.addItems(it) }
    }
}

@BindingAdapter("setGeneralItems")
fun RecyclerView.setGeneralAdapterItems(items: List<GeneralNotice>?) {
    with((adapter as GeneralAdapter)) {
        this.clear()
        items?.let { this.addItems(it) }
    }
}

@BindingAdapter("bachelorEndlessScroll")
fun RecyclerView.setBachelorEndlessScroll(
    viewModel: BachelorNoticeViewModel
) {
    val scrollListener =
        object : EndlessRecyclerViewScrollListener(layoutManager as LinearLayoutManager) {
            override fun onLoadMore(page: Int, totalItemsCount: Int, view: RecyclerView?) {
                viewModel.requestMoreNotice(totalItemsCount + 1)
            }
        }
    this.addOnScrollListener(scrollListener)
}

@BindingAdapter("generalEndlessScroll")
fun RecyclerView.setGeneralEndlessScroll(
    viewModel: GeneralNoticeViewModel
) {
    val scrollListener =
        object : EndlessRecyclerViewScrollListener(layoutManager as LinearLayoutManager) {
            override fun onLoadMore(page: Int, totalItemsCount: Int, view: RecyclerView?) {
                viewModel.requestMoreNotice(totalItemsCount + 1)
            }
        }
    this.addOnScrollListener(scrollListener)
}

 

 

 

바인딩 어댑터 이 하나를 다른 리사이클러뷰에서 데이터바인딩으로 공유해서 쓰는 실수가 있었습니다.. 타입이 틀리니 에러가 날 수 밖에 없었습니다... 근데 이 에러를 안알려주니 찾기가 매우 힘들었습니다 ㅠㅠ (처음에 Room 쪽 에러라 예상했었는데 ;;)

그래도 삽질끝에 해결해서 다행입니다. 

 

역시 막힐때는 쉬었다 하는게 최고인듯합니다. ㅎㅎ

 

 

 

[2020-07 추가]

gradle 에 assemble 로 실행할시 왠만하면 에러가 나오므로 이걸 사용하시면 됩니다 !!

 

 

댓글과 공감은 큰 힘이 됩니다. 감사합니다. !!!

 

 

 

 

728x90
Comments