하다하다 이제 이미지에서도 Crash가 나타난다. 나원참.
728x90
반응형

작업을 하다보면 감도 안잡히는 에러 메시지를 볼 때가 있다. 아래 메시지가 그런 종류.

// Crashlytics
Caused by org.xmlpull.v1.XmlPullParserException: 
Binary XML file line #11: invalid color state list tag gradient

보자마자 '이게 뭐다냐'라고 생각하며 검색을 해보니... 벡터 이미지(VectorDrawable) 내부에 gradient 문제로 확인 되었다. 안드로이드 버전 7(누가)부터 fillColor 옵션을 지원하기에 그 이전 버전의 디바이스에서 충돌할 수 있다. 아래는 구글 문서에서 안내하는 fillColor 옵션의 설명이다.

android:fillColor
android:fillColor Specifies the color used to fill the path. May be a color or, for SDK 24+, a color state list or a gradient color (See R.styleable.GradientColor and R.styleable.GradientColorItem). If this property is animated, any value set by the animation will override the original value. No path fill is drawn if this property is not specified.

그렇다면 안드로이드 버전별로 구분을 할 필요가 있겠을 것으로 파악된다. 정답이 아닐 수 있지만 내가 해결한 방법은 다음과 같다.

 

위 이미지를 참고하자. v24 이상에서는 벡터 이미지를 사용할 수 있으니 drawable-v24에 넣고 일반 png와 같은 이미지를 drawable에 넣는다. 깔끔 ㅇㅈ?

728x90
반응형