code

안드로이드 java.lang.NoClassDefFoundError

codestyles 2021. 1. 7. 07:59
반응형

안드로이드 java.lang.NoClassDefFoundError


작동하는 Eclipse IDE에 Android 프로젝트가 있습니다. 일부 가져 오기 및 테스트 후 오류가 발생 java.lang.NoClassDefFoundError합니다..

내 프로젝트에는 두 개의 패키지가 있습니다. 메인 패키지와 클래스가있는 두 번째 패키지입니다.

기본 활동 클래스의 두 번째 패키지 클래스에서 개체를 인스턴스화하려고하면이 오류가 발생합니다.

다음은 logcat입니다.

FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.neurospeech.wsclient.MDPIforEditorialBoard
at milos.mdpi.Journals.<init>(Journals.java:41)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.app.Instrumentation.newActivity(Instrumentation.java:1040)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1777)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:4389)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
at dalvik.system.NativeStart.main(Native Method)

내 문제에 대한 해결책을 찾았습니다.

해결책은 여기에서 찾을 수 있습니다 : http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17


최근에 Eclipse Android 플러그인 (adt r17)을 업데이트 했습니까? 다음 링크가 도움이 될 수 있습니다.

adt-17로 classdefnotfounderror를 수정하는 방법

업데이트 : 질문이 발생한 지 1 년이 지났습니다. 2013 년에도 일부 사람들이 문제를 해결하는 데 도움이되는 것 같아서 링크를 유지하겠습니다. 그러나 당신이하는 일에주의를 기울이십시오. 아래의 Erics 코멘트를보십시오. 현재 ADT 버전은 22입니다. 가장 최신 버전을 사용하는 것이 좋습니다.


이 순서로 빌드 경로를 편집하십시오.

/gen이전 인지 확인하십시오./src

여기에 이미지 설명 입력


여기에 내보낼 주요 프로젝트의 개인 라이브러리를 추가하여 문제를 해결했습니다.

Project Properties->Java Build Path->Order And Export

그리고 Android Private Libraries가 선택되어 있는지 확인하십시오.

스크린 샷 :

여기에 이미지 설명 입력

확인 google-play-services_lib.jar하고 확인하십시오 google-play-services.jar. 프로젝트를 정리하고 다시 실행하면 classNotfound 예외가 사라집니다.


Imaage

프로젝트 속성에서 주문 및 내보내기로 이동하여 내보내기에 필요한 항아리를 포함하고 있는지 확인하십시오.


다른 Android 라이브러리를 포함하는 오래된 프로젝트를 여는 동안이 문제가 몇 번 발생했습니다. 나를 위해 일하는 것은 다음과 같습니다.

주문 및 내보내기에서 Android를 맨 위로 이동 하고 선택을 취소합니다.

예, 이것은 정말로 차이를 만듭니다. Android Studio 용 ADT를 버릴 때가 된 것 같습니다!


1.6 대신 jdk 1.7로 컴파일 된 jar를 포함하려고하면이 오류가 발생할 수도 있습니다.

제 경우에는 ADT 대신 SDK에서 제공하는 Ant 스크립트를 사용하여 앱을 패키징하여이를 알아 냈고 ADT가 표시하지 않은 다음 오류를 발견했습니다.

  [dex] Pre-Dexing libjingle_peerconnection.jar -> libjingle_peerconnection-2f82c9bf868a6c58eaf2c3b2fe6a09f3.jar
   [dx]
   [dx] trouble processing:
   [dx] bad class file magic (cafebabe) or version (0033.0000)
   [dx] ...while parsing org/webrtc/StatsReport$Value.class
   [dx] ...while processing org/webrtc/StatsReport$Value.class

jdk 1.6으로 항아리를 다시 컴파일하고 오류가 수정되었습니다.


에가는 시도 Project -> Properties -> Java Build Path -> Order & Export안드로이드 개인 라이브러리 확인 프로젝트에 당신이 당신의 응용 프로그램에서 사용하는 다른 모든 라이브러리 프로젝트에 확인됩니다.


Java Build Path를 확인한 후 manifest 파일에 코드 줄을 추가합니다.

<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

참조 URL : https://stackoverflow.com/questions/9870995/android-java-lang-noclassdeffounderror

반응형