플랫폼/안드로이드 android

[안드로이드] android.content.res.Resources$NotFoundException: Resource drawable 오류

삐뚤어진 개발자 2020. 4. 7.

안드로이드 기기 api 다운그레이드 테스트를 하다 아래와 같은 오류가 생겼습니다.

api 24 에서 개발하던 소스를 api 21 기기에 포팅했더니, 아래와 같은 오류가 생긴 상황입니다.  

 

 

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android_test_system/com.example.android_test_system.Activity.Act_DSC.Act_Main}: android.view.InflateException: Binary XML file line #74: Binary XML file line #74: Error inflating class Button

 

Caused by: android.content.res.Resources$NotFoundException: Resource "com.example.android_test_system:drawable/main_btn_invoutfac" (7f08007c) is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f08007c a=-1 r=0x7f08007c} 오류

 

 

 

 

 

원인 분석 및 해결

 

stack overflow에서 찾아보니 drawable 폴더 뒤에 api 버전이 적힌대로 컴파일 한다는 내용이 있었습니다. 

그래서 오류나는 button 쪽을 보니 원인은,, button의  background 파일만 아래의 그림처럼 drawable- v24 폴더에 있었습니다. 

api 24에서 개발할 때는  drawable-v24로 찾아 들어가 찾을 수 있었는데, api 21로 바뀌면서 drawable-v24 의 폴더는 찾지 못해 오류가 난거 같습니다.

그래서 오류가 났던 파일, main_btn_invoutfac.jpg 를 drawable 폴더로 옮겨주고 다시 빌드하니 문제를 해결할 수 있었습니다.

댓글