2014년 8월 15일 금요일

[Android] java.lang.ClassCastException



java.lang.ClassCastException










안드로이드에서 위의 코드를 컴파일 할 때, java.lang.ClassCastException 이라는 에러를 종종 보게 됩니다. 다른 문제일 수도 있겠지만 안드로이드 작업 중 XML 파일에 변경된 내용이 많을 경우 발생합니다.


예를 들어서 위의 코드와 같이 Button 을 참조할 때 View 클래스의 findViewById() 메소드를 사용해서 인수로 전달받은 ID와 연관된 View를 얻어옵니다.

앱에서 모든 R .*.* 부분은 앱이 컴파일 될때 생성되는 R.java 파일에 저장됩니다. 

하지만 이 파일이 적절하게 업데이트가 되지 않은경우 findViewById() 메소드가 우리가 원하는 View를 반환하지 못하는 경우가 생기게 됩니다.

이렇게 잘 못 반환된 요소에 다른 View 를 캐스팅 하게 되면 두 요소는 엇갈리게 되어서 java.lang.ClassCastException 에러가 발생하게 되는 것입니다.




해결방법


이클립스 메뉴에서 Project > Clean 을 눌러주면 됩니다.


























댓글 없음:

댓글 쓰기