第一种

[crash修复]NoClassDefFoundError:原因:由于导包的时候包名大小写和自己在类里面的时候不一致导致的,找不到,
类com.txznet.music.image.imageLoader.ImageLoaderUtils但是这里面的包是Imageloader(大小写不一致)在release的时候可以正确release出来,但是使用到的时候就出现这样的问题。


java.lang.NoClassDefFoundError: Failed resolution of: Lcom/txznet/music/image/c/a;at com.txznet.music.image.ImageFactory.init(Proguard:33)at com.txznet.music.image.ImageFactory.<init>(Proguard:25)at com.txznet.music.image.ImageFactory.getInstance(Proguard:45)at com.txznet.music.utils.PlayerCommunicationManager.sendPlayItemChanged(Proguard:219)at com.txznet.music.utils.SyncOtherAppBroadcastListener.onPlayerPreparing(Proguard:22)at com.txznet.music.playerModule.logic.PlayerControlManager.notifyOnPreparedListener(Proguard:76)at com.txznet.audio.player.RemoteTestAudioPlayer$5.handleMessage(Proguard:504)at android.os.Handler.dispatchMessage(Handler.java:111)at android.os.Looper.loop(Looper.java:207)at android.app.ActivityThread.main(ActivityThread.java:5737)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:834)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:724)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.txznet.music.image.c.a" on path: DexPathList[[zip file "/data/app/com.txznet.music-1/base.apk"],nativeLibraryDirectories=[/data/user/0/com.txznet.music/solibs, /data/user/0/com.txznet.music/solibs, /data/user/0/com.txznet.music/solibs, /data/app/com.txznet.music-1/lib/arm, /data/app/com.txznet.music-1/base.apk!/lib/armeabi-v7a, /data/user/0/com.txznet.music/solibs, /data/user/0/com.txznet.music/solibs, /data/user/0/com.txznet.music/solibs, /vendor/lib, /system/lib]]at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)at java.lang.ClassLoader.loadClass(ClassLoader.java:511)at java.lang.ClassLoader.loadClass(ClassLoader.java:469)... 13 moreSuppressed: java.lang.ClassNotFoundException: com.txznet.music.image.c.aat 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)... 14 moreCaused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

在AndroidStudio里面报的错误时:

Error:Error converting bytecode to dex:
Cause: java.lang.RuntimeException: Exception parsing classes
Error:Error converting bytecode to dex:
Cause: java.lang.RuntimeException: Exception parsing classes
Error:Error converting bytecode to dex:
Cause: java.lang.RuntimeException: Exception parsing classes
Error:3 errors; aborting
Error:Execution failed for task ':TXZMusic4.0:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Return code 1 for dex process

但是使用gradle的assembleRelease的时候,可以正常编译通过,这个让人匪夷所思。

同时如果改掉package的包名为ImageLoder的时候
AndroidStudio才会认为这里出现了异常并提示找不到类

F:\workspace\java\android\projects\rearview_mirror_steady\TXZMusic4.0\src\com\txznet\music\image\ImageFactory.java
Error:(9, 42) 错误: 程序包com.txznet.music.image.imageLoader不存在
Error:(33, 32) 错误: 找不到符号
符号:   类 ImageLoaderUtils
位置: 类 ImageFactory
Error:Execution failed for task ':TXZMusic4.0:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

此时release也是不可以的也是提示找不到符号。

改成
package com.txznet.music.image.Imageloader;
和包名一致则可以。

第二种

类加载失败

测试代码::::
public class Undef1 {public static Undef1 instance = new Undef1();private Undef1(){ throw new NullPointerException(); }public static Undef1 getInstance(){return instance; }public void print(){}
}
public class Undef {public static void print(){//System.out.println("thread id 0 : " + Thread.currentThread());try{ Undef1.getInstance().print(); }catch(Exception e){ System.out.println("thread id 0 : " + e.toString()); }catch(Error e1){ System.out.println("thread id 0 : " + e1.toString()); }try{ Undef1.getInstance().print(); }catch(Exception e){ System.out.println("thread id 1: " + e.toString()); }}
}
输出为::
thread id 0 : java.lang.ExceptionInInitializerError
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class com.txznet.testapi.Undef1
at com.txznet.testapi.Undef.print(Undef.java:16)
at com.txznet.testapi.Main.main(Main.java:30)

分析后可得:
第一次调用的时候发生了异常又被捕获了,第二次在调用该类的时候发生的。
猜测在类装载的时候将符号表进行进行存放,第一次调用的时候,尝试进行加载(此时发生错误),则装载器从符号表中删除错误的索引,第二次在调用的时候则会先在符号表中查找,没有则直接抛出这个异常。

java.lang.NoClassDefFoundError(这只是其中的两种情况)相关推荐

  1. java项目打jar包的两种情况

    java项目打jar包的两种情况 本文介绍一下java项目打jar包时的两种情况各怎么操作 方法/步骤 1.  1 一.java项目没有导入第三方jar包 这时候打包就比较简单: 1.  首先在Ecl ...

  2. SpringBoot 项目tomcat插件启动报错 java.lang.NoClassDefFoundError: javax/el/ELManager

    问题描述: SpringBoot项目 tomcat插件启动出现下面的问题: ERROR 2021-04-07 08:42:03,129 org.springframework.boot.SpringA ...

  3. Caused by: java.lang.NoClassDefFoundError: redis/clients/util/Pool

    严重: Exception sending context initialized event to listener instance of class org.springframework.we ...

  4. exception in thread main java.lang.noclassdeffounderror wrong name

    不含包层次的HelloWorld.java public class HelloWorld{ public static void main(String[] args) { System.out.p ...

  5. 如何解决java.lang.NoClassDefFoundError:Java 9中的javax / xml / bind / JAXBException

    本文翻译自:How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9 I have s ...

  6. 怎么解决java.lang.NoClassDefFoundError错误

    前言 在日常Java开发中,我们经常碰到Java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很 ...

  7. java.lang.NoClassDefFoundError:如何解决–第3部分

    本文是我们的NoClassDefFoundError故障排除系列的第3部分. 正如我在第一篇文章中提到的那样,有许多可能导致NoClassDefFoundError的问题. 本文将重点介绍该问题的最常 ...

  8. java.lang.NoClassDefFoundError: * : Landroid/support/v7/gridlayout/R$styleable 异常终极解决办法

    该问题解决办法适用于任何类似问题. 问题的标准异常描述为:java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/ ...

  9. JUnit-4.12报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing异常的解决

    目录 QUESTION:JUnit-4.12报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing异常的解决? ANWSER: 问题原 ...

最新文章

  1. 使用 Nginx 搭建图片服务器
  2. 会写代码是你创业路上的包袱吗?
  3. boost::filesystem模块打印文件的大小的测试程序
  4. 字符串处理(POJ1782)
  5. php 5.6.21连接mysql_IIS 7.5 + PHP-5.6.3 + mysql-5.6.21.1
  6. 5G 浪潮来袭!程序员在风口中有何机遇?
  7. IEnumerable和使用收益回报的递归
  8. 强化学习——Q学习算法
  9. Android N开发 你需要知道的一切
  10. 网络安全系列-VIII: 什么是渗透测试 Penetration Test?
  11. ardupilot java_基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建
  12. 重磅|棱镜七彩同CNCERT联合发布开源软件供应链安全风险研究报告了!!
  13. Redis高可用 Sentinel
  14. 程序员创业必读的几本书
  15. 深度学习 噪声抑制_使用深度学习抑制噪声
  16. android webview 打开淘宝链接 error
  17. js时间戳转换年月日
  18. laravel 隐藏 x-powered-by
  19. php服务器搭建iis,PHP+IIS 服务器环境的搭建
  20. 华为交换机基本配置之Telnet和SSH方式远程登录

热门文章

  1. 什么是dism host servicing process
  2. Android Tips: 蓝牙和GPS的检测
  3. 用Go快速搭建IM即时通讯系统
  4. python项目实训报告简介_python实验报告5
  5. 三维空间无人机集群编队控制,避障,目标追踪
  6. 业务还是功能?2B产品的用户角色问题
  7. shell 中 time的使用
  8. 关于IBM的专用集成电路设计流程以及RLM设计流程的优点详解
  9. java反射基础学习
  10. 初级会计实务--第四章第二节、资本公积