마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

NoClassDefFoundError 질문이요.

+1 추천
안녕하세요
 
GCM 관련해서 http://developer.android.com/google/gcm/gs.html 링크를 보고 작업을 하고 있는데요..
 
PROJECT ID를 registration하기 위해서 동작을 시켰더니 아래와 같은 에러가 발생을 합니다.
 
06-13 16:43:55.308: E/AndroidRuntime(25313): java.lang.RuntimeException: An error occured while executing doInBackground()
06-13 16:43:55.308: E/AndroidRuntime(25313): Caused by: java.lang.NoClassDefFoundError:     com.google.android.gms.gcm.GoogleCloudMessaging
 
라이브러리가 참조가 안되는 것 같은데 Build Path에는 gcm.jar이 제대로 선택되어 있습니다.
어떻게 해결해야하는건지 도움 좀 부탁드립니다.

 

시베리아수컷타이거 (560 포인트) 님이 2013년 6월 13일 질문
Caused by 아래로 다른 에러 메시지는 없었나요?
네 Caused by 아래에 특별히 주목할 만한 에러 메시지는 없습니다.
그냥 에러 발생 위치 정도가 나오고 있습니다.

3개의 답변

0 추천
 
채택된 답변
라이브러리 프로젝트 사용시 라이브러리 프로젝트에서 jar를 export에 포함된 상태로 해당 라이브러리 프로젝트를 사용하는 프로젝트에서 똑같은 jar를 중복 import시 발생했던 문제 같기도 하네요.
hunikey (1,220 포인트) 님이 2013년 6월 13일 답변
시베리아수컷타이거님이 2013년 6월 14일 채택됨
댓글을 잘못 달았네요;
답변 감사드립니다. 여러 자료를 보면서 하다보니 라이브러리 중복이 되었던게 맞는것 같습니다. 다시 안드로이드 레퍼런스 자료 보면서 하니깐 되는 것 같습니다. 감사합니다.
+1 추천

체크의 경우 빌드할때 참조할 뿐이고, 실제 라이브러리가 apk에 들어가려면 gcm.jar 를 libs 폴더에 복사해 넣어주셔야 하는데,

넣지 않으신게 아닐까 합니다.

libs폴더에 없다면 복사해 넣어주세요

사악미소 (65,330 포인트) 님이 2013년 6월 13일 답변
답변 감사드립니다. gcm.jar의 위치는 제대로 프로젝트의 libs 폴더에 넣어져 있습니다. 그럼에도 에러가 계속 발생하네요.
0 추천
NoClassDefFoundError발생 시 Project -> clean 해주시면 됩니다.

기존 jar가 참조하는걸 jar를 교체하면서 이전 참조를 그대로 하려고 하면서 생기는 문제였던걸로 기억하네요.

따라서 clean을 해줌으로써 기존 참조가 잡혀있던 부분을 다시 새로운 jar로 참조하게끔 해주면서

정상적으로 되드라고요
-쫑- (1,790 포인트) 님이 2013년 6월 17일 답변
...