[Android Build Error] android.view.InflateException: Binary XML file line #58: Error inflating class ImageButton
Android 개발할 때에,
vector 이미지를 사용할 경우에 간혹 볼 수 있는 에러입니다.
(사실 아이콘은 그렇게 관심을 두지 않아서 이번에 처음 봤습니다 ㅠ)
아래의 내용을 보면 결국 2가지를 해야 이 문제를 잡을 수 있습니다.
1. Gradle에서 vector image 사용을 Enable 하는 것
아래처럼 enable해줍니다.
(이 부분은 구글링하면 금방 나옵니다. )
defaultConfig { ... vectorDrawables.useSupportLibrary = true } |
2. image source를 가져올 때, Attribute를 변경하는 것
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/baseline_refresh_24" /> |
보통은 android:src 를 쓰는데, vector image를 사용할 때엔 위와 같이 변경해야 합니다.
1번과 2번을 동시에 적용해야지 문제가 해결되는데요,
그건 아마도 support library 를 사용하기 때문에 약간의 차이가 생기는 것 같습니다.
사실 1번의 설명에서도 2번을 하라는 이야기가 제법 있지만,
"android:compat" 이라고 오타를 내는 바람에, 문제를 차지 못했었습니다. ㅠ
참고로 위의 버튼의 파일명은 baseline_refresh_24.xml 입니다.
그 파일은 아래의 위치에서 얻을 수 있습니다.
https://material.io/resources/icons/?icon=refresh&style=baseline
Android.view.InflateException: Binary XML file line #25: Error inflating class ImageButton, Resource NotFoundException, XmlPullP
In API: 19 Iam facing this Inflate Exception but Iam using AppCompatDrawableManager which supports as vector drawables in API:19 three Exceptions 1. Error in Inflate Image button 2. Resources$
stackoverflow.com