스팀 앱 개발기 #61 - layout_post_item.xml 수정 후 예상치 못한 빌드 오류steemCreated with Sketch.

시작하며...

중간에 빌드 문제가 없는지 확인을 해보았는데요. 아래와 같은 오류가 발생했습니다.

dorian-steem-apps/dorian-steem-apps-v1/dorian-steem-ui/build/generated/ap_generated_sources/debug/out/lee/dorian/steem_ui/DataBinderMapperImpl.java:23: error: cannot find symbol
import lee.dorian.steem_ui.databinding.LayoutPostItemBindingImpl;
^
symbol: class LayoutPostItemBindingImpl
location: package lee.dorian.steem_ui.databinding

이건 도대체 무슨 내용인가... LayoutPostItemBindingImpl 클래스가 없다고 합니다. 이것은 제가 만드는 게 아니라 컴파일러가 자동으로 생성해주는 자바 클래스입니다. 그게 왜 안 만들어졌을까요? layout_post_item.xml 파일을 다시 읽어봤지만, 문법에 어긋나는 코드는 보이지 않았습니다. 그렇다면 뭐가 문제였을까요?


원인

원인은 layout_post_item.xml 파일의 ImageView 요소에 추가한 app:srcURL 속성 때문이었습니다. 그것은 나중에 정의할 예정이었으며, 현재는 없는 속성입니다. 그것 때문에 LayoutPostItemBindingImpl 클래스가 만들어지지 않은 것입니다. 그 속성이 정의되지 않은 것이라고 안드로이드 스튜디오가 알려줬다면, 문제를 더 빨리 수정할 수 있지 않았을까 하는 생각도 해보았습니다. 하마터면 원인을 찾지 못 하고 계속 헤맬 뻔 했어요. 원인을 1시간만에 빨리 찾아 다행입니다.


해결

지금은 ImageView 요소의 app:srcURL 속성을 임시로 제거하기로 했습니다. 그 결과, 빌드가 정상적으로 실행되었습니다. 이 속성은 나중에 태그 화면을 구현할 때 다시 추가할 예정입니다.


GitHub Commit


마치며...

이와 같이 개발에서는 예상치 못 한 오류를 만나서 삽질을 할 때가 있습니다. 실력 있는 개발자라면, 이러한 오류를 빨리 처리할 수 있어야 합니다.

밤 12시 직전에 포스트를 올리곤 해서 일부 포스트들을 수정 못 했었죠. 오늘의 빠른 포스팅 덕분에 필요한 수정들을 오늘 할 수 있게 되었습니다. 늦기 전에 빨리 해야겠어요.


지난 스팀 앱 개발기

Sort:  
 2 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 57893.29
ETH 3130.56
USDT 1.00
SBD 2.44