티스토리 뷰
Programming/안드로이드(Android)
[안드로이드] Data binding 사용 시 Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0 Error
weekyear 2021. 6. 3. 02:17조금만 찾아보니 생각보다 빠르게 고칠 수 있었던 에러였지만 예전에도 한 번 겪었던 에러이기 때문에 이렇게 기록으로 남기려고 한다. 그리고 나와 같은 안드로이드 입문자들이 데이터 바인딩을 쓰다 보면 한 번씩 겪을 에러이기 때문에 조금이라도 시간을 아끼길 바라며 간략하게 글을 남기려고 한다.
원인
우선 에러 코드를 통해서 문제시 되는 코드는 다음과 같았다.
...
android:text="@{myData.friendsNum}"
...
xml에서 데이터바인딩을 통해서 friendsNum이라는 Int 값을 전달하게되면 내부적으로는 다음과 같은 자바 코드로 변환된다.
// myDataFriendsNum Integer
this.myTextView.setText(myDataFriendsNum);
하지만 위 함수의 myData.friendsNum 변수는 String 값(ex : 0 => "0")으로 변환되는 것이 아니라 String 자원을 검색하기 위한 Resource Id로 활용된다. 하지만 해당 Resource Id에 해당하는 값이 없기 때문에 나는 에러였다.
해결
...
android:text="@{String.valueOf(myData.friendsNum)}"
...
데이터 바인딩 내에서 String의 valueOf 함수를 활용하여 String 값으로 변환하는 절차가 필요하다.
반응형
'Programming > 안드로이드(Android)' 카테고리의 다른 글
Android 클린 아키텍처 (0) | 2021.09.16 |
---|---|
RecyclerView의 item에 Custom View를 넣고 싶을 때 (0) | 2021.09.01 |
[안드로이드] ProgressBar에 애니메이션 적용 (0) | 2021.05.13 |
[안드로이드] 구글 플레이 콘솔 기기 0대에서 사용 가능 (uses-feature) (0) | 2021.05.11 |
[안드로이드] 스레드와 핸들러 (feat. 깡샘) (0) | 2021.05.11 |
댓글