2013-08-12 3 views
0

Java 프로젝트에서 android.jar 및 gson jar를 사용할 때 java.lang.NoClassDefFoundError 오류가 발생합니다. 나는 아래 라인Gson java.lang.NoClassDefFoundError

Type typeOfReultClass = new TypeToken<URLDataResponse>() {}.getType(); 

과 로그 캣 오류 아래의 오류가 점점 오전 : 단계 아래

E/AndroidRuntime(26480): FATAL EXCEPTION: main 
E/AndroidRuntime(26480): java.lang.NoClassDefFoundError: com.kony.andffiJS.DownloadActivity$3 
E/AndroidRuntime(26480):  at com.kony.andffiJS.DownloadActivity.downloadData(DownloadActivity.java:92) 
E/AndroidRuntime(26480):  at com.kony.andffiJS.DownloadActivity.access$2(DownloadActivity.java:86) 
E/AndroidRuntime(26480):  at com.kony.andffiJS.DownloadActivity$1.onClick(DownloadActivity.java:60) 
E/AndroidRuntime(26480):  at android.view.View.performClick(View.java:4203) 
E/AndroidRuntime(26480):  at android.view.View$PerformClick.run(View.java:17189) 
E/AndroidRuntime(26480):  at android.os.Handler.handleCallback(Handler.java:615) 
E/AndroidRuntime(26480):  at android.os.Handler.dispatchMessage(Handler.java:92) 
E/AndroidRuntime(26480):  at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime(26480):  at android.app.ActivityThread.main(ActivityThread.java:4950) 
E/AndroidRuntime(26480):  at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(26480):  at java.lang.reflect.Method.invoke(Method.java:511) 
E/AndroidRuntime(26480):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
E/AndroidRuntime(26480):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
E/AndroidRuntime(26480):  at dalvik.system.NativeStart.main(Native Method) 
+0

최근에 sdk 또는 adt를 업데이트하셨습니까? –

+0

아니요. 내 adt 버전은 22입니다. – Dhrupal

+0

'new TypeToken() {}'은'DownloadActivity'의 내부 클래스 인'TypeToken'의 익명 ('.. $ 3') 서브 클래스를 생성합니다. 그 클래스 정의가 발견되지 않으면 아마도'TypeToken'을 찾을 수 없다는 것을 의미 할 것입니다. 프로젝트를 청소하고'TypeToken'을 포함하는 라이브러리가 * exported * (= 결과 jar에 포함됨)인지 확인하십시오. – zapl

답변

1

따라

  1. 빌드에서 모든 안드로이드 라이브러리 프로젝트와 외부 항아리를 제거 경로를.
  2. 프로젝트에 'libs'라는 폴더를 만듭니다.
  3. 모든 외부 .jar를 해당 폴더에 배치하면 ADT는 이제이를 'Android Dependencies'아래에 배치해야합니다.
  4. 이전 Android 라이브러리 프로젝트를 정상적으로 다시 가져옵니다.

문제는 속성을 사용하는 경우 외부 항아리가 기본적으로 'libs와'폴더에 저장되지 않는 것입니다 - 자바, 대신 그들이 아래에 위치 경로 - 외부 항아리를 추가 구축 '참조 된 라이브러리'대신 '안드로이드의 종속성 '과이 은 NoClassDefFoundError를 발생시킵니다.

+0

하지만 안드로이드 프로젝트에서 일하지 않고, 안드로이드 의존성 폴더가 생성되지 않도록 안드로이드 프로젝트에서 android.jar를 사용하고 있습니다. – Dhrupal