PNG파일이 아닌 XML파일로 Drawables 파일 지정시 발생되는 에러 (Can't process attribute ...…
페이지 정보

본문
개요
간단한 WebView Application을 개발하고, Material Design 사이트에서 아이콘을 내려받아 이를 적용하는 작업을 진행하고 있었습니다.
해당 사이트에서는 PNG 파일과 XML 파일을 내려받을 수 있는데, PNG 이미지 파일의 사이즈는 고정적이기 때문에 되도록 XML 파일을 통해 추가하려고 시도했습니다.
(요즘 PNG raw 파일보단 XML을 통해 해상도 파편화 이슈로부터 자유로워지려는 트렌드도 한몫했구요.)
그러던 중, 아래와 같은 오류를 경험하게 된 것이죠.
오류 발생
java.lang.RuntimeException:
Error while processing /media/.../baseline_search_24.xml : Can't process attribute android:fillColor="@android:color/white": references to other resources are not supported by build-time PNG generation.
File was preprocessed as vector drawable support was added in Android 5.0 (API level 21)
See http://developer.android.com/tools/help/vector-asset-studio.html for details.
어떻게 해결해야할까요?
사용중인 Gradle 버전에 따라 각기 다르게 적용하면 됩니다.
build.gradle (Gradle 1.5 이하)1 | android { |
또는,
build.gradle (Gradle 2.0 이상)1 | android { |
모양으로 build.gradle 파일을 수정하면 됩니다.
왜 발생할까요?
PNG과 같은 비트맵 파일을 사용하면 해상도에 따라 모자이크처럼 보이거나, 또는 상당히 작고 흐릿한 이미지로 출력되는 큰 단점이 있습니다. 그래서 중요한 기능에 대한 버튼 및 레이아웃 구성들은 XML와 같은 Vector 파일을 주로 사용하고 있는 추세입니다.
그러나 Android 5.0 롤리팝 (API 21) 이하의 버전의 환경들 모두가, 반드시 Vector 방식의 drawables를 불러올 수 있는 것이 아니기 때문에 반드시 위와 같은 코드들을 입력해야합니다.
- 이전글액티비티 상단바 제거 - <item name="windowNoTitle">true</item> 20.09.24
- 다음글디바이스 화면 해상도 구하기 20.01.19
댓글목록
등록된 댓글이 없습니다.