일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- viewholder
- 안드로이드
- 생명주기
- Fragment 수동 추가
- 스와이프
- IntentTestRule
- 뷰변경 감지
- searchview
- ui test
- ActivityTestRule
- 재사용
- 코틀린
- 테마 아이콘
- adapter
- fragment
- Android
- recyclerview
- 고차함수
- Fragment에서 Activity의 함수 사용하기
- LayoutManger
- binding adapter
- 리사이클러뷰
- Error:Execution failed for task ':app:mergeDebugResources'
- 구분선
- 안드로이드스튜디오
- 안드로이드개발레벨업교과서
- high order function
- espresso
- 안드로이드13
- 코딜리티
Archives
- Today
- Total
룬아님의 취중코딩
Found data binding errors. (데이터 바인딩 에러를 찾아보자) 본문
개인적으로 데이터 바인딩을 사용하면서
[kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.
해당 에러를 매우 많이 봐왔고 정확한 에러 위치 조차 알려주지 않아 시간을 허비한 경우가 굉장히 많았습니다.
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_chat"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
app:items="@{viewmodel.item}"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
만약 viewmodel.items를 써야 하는 상황에서 viewmodel.item이라고 쓰게 된다면 위의 에러를 보게 됩니다.
xml 코드가 짧다면 문제 없이 원인을 찾을 수 있겠지만 길어진 xml 코드에서 데이터 바인딩 에러를 찾기는 굉장히 어려웠습니다.
이때에 안드로이드 스튜디오 터미널에서
./gradlew assembleDebug --debug --stacktrace
해당 명령어를 치게되면 debug로그가 상세하게 터미널에 표시됩니다.
빌드를 마친이후에 터미널에 찍힌 로그를 보게 되면
16:45:02.051 [ERROR] [org.gradle.api.Task] e: [kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.
Could not find accessor <packagename>.ChatViewModel.item
file:///<path>/app/src/main/res/layout/chat_fragment.xml Line:28
이런 로그를 찾을 수 있게 됩니다.
ChatViewModel에서 item을 찾을 수 없다는 에러와 함께 해당 파일과 코드 위치까지 알려줍니다.
그러면 해당 위치에서 문제를 찾고 고쳐주면 빠르게 데이터 바인딩 문제를 해결할 수 있습니다.
반응형
'개발 > 안드로이드 개발' 카테고리의 다른 글
Comments