[Android Build Error] android.view.InflateException: Binary XML file line #58: Error inflating class ImageButton
Programming/Android 2019. 12. 18. 23:21Android 개발할 때에,
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
'Programming > Android' 카테고리의 다른 글
[Android] CheckBox 가 border 만 그려지고 내부의 check 가 안 그려지는 문제 (0) | 2020.03.25 |
---|---|
[Android] preferencefragmentcompat 에서 좌측 여백이 너무 많을 때 (0) | 2020.03.24 |
[Android Studio 빌드에러] Gradle Error - The newly created daemon process has a different context than expected. Java home is different (12) | 2019.01.15 |
[Android] UI Update Error (0) | 2018.09.30 |
Android Test Suite 실패할 때 (0) | 2018.07.10 |