이 에러는 해결할 첫번째 방법
xml Layout에 커스텀 뷰를 넣을 경우는 대부분은 아시겠지만..
Packgage : com.test
Class : CustomComponent
위를 main.xml에 넣을려구 할 경우
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.test.CustomComponent
android:id="@+id/customId"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
다음과 같이 작성 한다..
하!지!만! 이렇게 작성할 경우 가장 많이 보이는 이런 비슷한 에러를 볼 수 있다.
Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class com.test.Com~~~~~
열심히 구글링을 해본 결과...
역시나 답은 있었다.
생성자에 꼭 AttributeSet을 넣어야 하는것이다.
public CustomComponent (Context context) {
super(context);
}
public CustomComponent (Context context,AttributeSet attr) {
super(context,attr);
}
꼭 위의 빨간색 같이 생성자를 넣어줘야만 하며!!
만약 클래스를 상속 받으면 부모 클래스에도 위와 같은 생성자를 넣어줘야합니다.
출처:http://joshy21.com/weblog/25
아니면
두번째 방법은
숫자는 res/layout/레이아웃.xml 파일의 Line Number를 의미하는데,
해당 라인넘버에 지정된 태그명에 해당하는 클래스가 없을 경우에 발생한다.
클래스의 경로가 정확한지 확인해보자.
저는 두번째 방법으로 해결을 했네요..... 모두 오타 조심합시다!
'프로그래밍 > 안드로이드' 카테고리의 다른 글
펌자료) onResume/onPause onStop/onStart 차이점 (0) | 2013.10.30 |
---|---|
펌자료) 안드로이드 어플 종료시 캐시 자동 삭제 방법!! (0) | 2013.10.30 |
펌자료) 안드로이드의 파일 입/출력에 필요한 경로를 얻는 방법 총정리! (0) | 2013.10.30 |
펌자료) 안드로이드 로그관리. (0) | 2013.10.28 |
안드로이드 Touch 이벤트 처리하기 (0) | 2013.05.03 |
안드로이드 핸들러로 UI처리하고 쓰레드에서 실작업 처리하기 (1) | 2012.08.23 |
안드로이드 쓰레드 진행상황 프로그래스바로 보여주기 (0) | 2012.08.22 |
안드로이드 쓰레드로 ANR(Application not response)방지법 (0) | 2012.08.22 |