java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

3809 단어
최근에 안드로이드 스튜디오는 항상 최신 안정적인 버전 2.3.3을 다운로드할 수 있다고 알렸는데 반년이 지났는데 마지막에 참지 못하고 업데이트를 눌렀다. AS를 업데이트한 후에 해당하는gradle 버전 3.3버전과gradle classpath:2.3.3을 업데이트하라고 알렸다.그러나 최신 버전을 사용한 후에 원래 잘 되어 있던 항목이 debug 버전을 실행할 때 항상 오류를 알려주고,release 버전으로 직접 포장하면 오류가 발생하지 않습니다
다음과 같이 잘못 보고되었습니다.
java.lang.RuntimeException: Unable to instantiate application com.ztph.mall.ZTPHApplication: java.lang.ClassNotFoundException: Didn't find class "com.ztph.mall.ZTPHApplication"on path: DexPathList[[zip file "/data/app/com.ztph.mall-1/base.apk"],nativeLibraryDirectories=[/data/app/com.ztph.mall-1/lib/arm64,/data/app/com.ztph.mall-1/base.apk!/lib/arm64-v8a,/vendor/lib64,/system/lib64]] at android.app.LoadedApk.makeApplication(LoadedApk.java:591) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4937) at android.app.ActivityThread.access$1700(ActivityThread.java:180) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1555) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5791) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.ztph.mall.ZTPHApplication"on path: DexPathList[[zip file "/data/app/com.ztph.mall-1/base.apk"],nativeLibraryDirectories=[/data/app/com.ztph.mall-1/lib/arm64,/data/app/com.ztph.mall-1/base.apk!/lib/arm64-v8a,/vendor/lib64,/system/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.app.Instrumentation.newApplication(Instrumentation.java:986) at android.app.LoadedApk.makeApplication(LoadedApk.java:586) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4937) at android.app.ActivityThread.access$1700(ActivityThread.java:180) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1555) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5791) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762) Suppressed: java.lang.ClassNotFoundException: com.ztph.mall.ZTPHApplication at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 12 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
그때는 이상했다. 프로젝트가 제3자 so 라이브러리에 도입되었기 때문에 라이브러리 원인인 줄 알았고git에서 프로젝트 clone을 한 번 더 사용했다. 이전에 문제가 없었던 코드 노드를 컴파일하여 포장했는지, 아니면 오류를 보고했는지, 이어서 인터넷에서 구 버전의 안드로이드 스튜디오를 다운로드하고 인터넷에서 같은 오류를 보고한 원인을 찾았다.등등 일련의 고생을 했지만 문제는 여전히 최종적으로 해결되지 못했다.하루 종일 고생한 끝에 영감이 떠올라 구 버전의gradle로 바꾸었다.
    :

     build.gradle   :

        dependencies {
         classpath 'com.android.tools.build:gradle:2.2.3'

         // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
       }

gradle 파일 디렉터리의gradle-wrapper.properties 수정:
      distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

gradle 버전을 수정한 후 패키지 실행을 시작했습니다. 이 오류는 더 이상 보고되지 않았습니다. 문제가 완벽하게 해결되었습니다.나는 원래는 모두gradle 포장의 문제였다고 말하고 싶었다...아이구

좋은 웹페이지 즐겨찾기