본문 바로가기
개발/Android

[Android] Binary XML file line : Error inflating class

by blacktree 2022. 5. 24.
반응형

CustomView를 만들어 사용하다 보면 아래와 같은 에러가 발생하는 경우를 볼 수 있다. 

물론 xml을 작성 시 존재하지 않는 Class를 태그로 사용 허거나 오타 등등으로도 발생할 수 있다. 

관련된 에러를 수정하면서 찾아보니 발생하는 이유는 다양했다. 

아래와 같이 정리해봤습니다.

 

에러 메시지

2022-05-24 09:45:24.293 31272-31272/ E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.test.main, PID: 31272
    android.view.InflateException: Binary XML file line #116 in com.test.main:layout/popup_settings: Binary XML file line #116 in com.test.main:layout/popup_settings: Error inflating class com.test.main.CommonButton
    Caused by: android.view.InflateException: Binary XML file line #116 in com.test.main:layout/popup_settings: Error inflating class com.test.main.CommonButton

 

방법

  1. xml에 작성한 클래스(패키지명)까지 잘못 입력된 부분이 있는지 확인한다.
  2. xml에 설정값이 잘못 입력되었는지 확인한다.
  3. 생성자 함수를 만들지 않은 경우
    1.  예) CustomView는 매개변수를 Activity가 아닌 Context로 해야 한다.
    2.  예) 클래스를 상속받으면 부모 클래스에도 같은 생성자를 넣어줘야 한다.
  4. image관련 경우 이미지 리소스를 drawable이 아닌 drawable-24에 넣은 경우 발생한다. 
    1. drawable로 옮겨준다.
  5. fragment 통신 오류
    1. fragment는 항상 자신이 속한 activity만 통신이 가능하다
    2. 직접적으로 통신하려 하면 이 오류가 발생한다
  6. 벡터 이미지 적용 시
    1. 키켓 이하의 운영체제를 지원하는 앱에서 ImageView에 android:backgroud 대신에 app:srcCompat을 사용한다.​

 

 

 

 

728x90
반응형

댓글