首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当dex分包遇上NoClassDefFoundError&ClassNotFoundException

简介 本文记录的是:国庆节前夕,解决Crash率高达9.08%问题成功避免加班拿3倍工资的故事 PS: 除了在时间上两者相遇外,本文中提到的两个(top1&top2)crash问题与dex分包并没有关系...同时发生)下,才有可能抓到这个关键信息 问:为什么这个关键地方SpaceScanManager.y(ProGuard:709)的ExceptionInInitializerError异常没有导致程序挂掉...发生的原理,很简单的就能制造场景重现Crash,代码如下: 结果: 第一处被catch住的java.lang.ExceptionInInitializerError异常 第二处没有catch的java.lang.NoClassDefFoundError...吸取之前的教训,这次我们同时灰度了两个包,对比dex分包所带来的问题: 验证结果:9112和9113版本Crash率均在预期的范围内(0.5%左右),且无TOP1&TOP2 Crash ---- 总结...异常 若类加载java.lang.ExceptionInInitializerError异常被try/catch住,下次new类对象时将产生java.lang.NoClassDefFoundError异常

63820
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    解决java.lang.NoClassDefFoundError错误

    1、问题背景 在日常Java开发中,碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?...而如果你在J2EE的环境下工作,并且得到NoClassDefFoundError的异常,而且对应的错误的类是确实存在的,这说明这个类对于类加载器来说,可能是不可见的。...classpath中,或者检查为什么类在classpath中是不可用的,这个发生可能的原因如下: 1、对应的Class在java的classpath中不可用 2、你可能用jar命令运行你的程序,但类并没有在...比如其他用户应用所属权限的jar包你的程序没有权限访问,会导致java.lang.NoClassDefFoundError的错误。...由于J2EE没有指明标准的类加载器,使用的类加载器依赖与不同的容器像Tomcat、WebLogic,WebSphere加载J2EE的不同组件如War包或者EJB-JAR包。

    43110

    Android客户端性能异常类

    Android客户端性能异常类 影响app体验的通用类问题可以分为两大类:超时和崩溃。 超时 (Time Out) 没有在用户的预期内及时的响应用户的请求和交互。...,CPU绘制时间会短; 不合理的异步(会导致CPU占用互斥资源); 崩溃 (Crash) 在某些场景下,满足的条件未满足或者需要的资源没有拿到,出现的未预期的运行时异常。...: Native崩溃 主动类:运行时框架代码或业务代码发现的状态异常,代码运行过程中主动触发;这类异常在预期范围内,通过此类方法暴露问题。...被动类:在运行时执行一些指令或者访问某些内存地址被动触发的;不在预期范围内;比如:野指针,多线程操作文件没有同步保护等等。...udf指令:此指令 arm cpu无法识别 指令被破坏:生成指令时(ROM or RAM的BIt位反转)出错,导致RAM或者ROM中的指令异常;属于硬件出错 指令集错误:CPU错误解析指令

    4.1K10

    Byteman 使用指南(八)

    唤醒可以简单地允许挂起的线程继续执行它所暂停的规则,或者强制等待的线程从触发方法中以异常退出。...如果线程数量等于预期计数,那么所有挂起的线程将被唤醒。...rendezvous 也可以传递一个超时参数,标识调用者应该等待所有线程到达的毫秒数。如果超时时间超过了预期数量的线程到达集合点的时间,并且没有达到预期数量的线程,那么将从调用中抛出(运行时)异常。...如果超时时间超过了预期数量的线程到达的等待时间,并且没有达到预期数量的线程,那么将从调用中抛出(运行时)异常。零或负的超时值意味着不要超时。 4....这有效地杀死了 JVM,没有任何机会让任何注册的退出处理程序运行,模拟了 JVM 崩溃。如果未提供 exitCode,它默认为 -1。

    3100

    实习杂记(27):如何解决Java.lang.NoClassDefFoundError

    网上有很多种原因的解释,   大体上说,就是   类没有找到, 但是你明明写了,编译的时候也通过,为什么运行的时候就挂了呢, 其实有几个原因: 对应的Class在java的classpath中不可用 你可能用...而如果你在J2EE的环境下工作,并且得到NoClassDefFoundError的异常,而且对应的错误的类是确实存在的,这说明这个类对于类加载器来说,可能是不可见的。...classpath中,或者检查为什么类在classpath中是不可用的,这个发生可能的原因如下: 对应的Class在java的classpath中不可用 你可能用jar命令运行你的程序,但类并没有在jar...比如其他用户应用所属权限的jar包你的程序没有权限访问,会导致java.lang.NoClassDefFoundError的错误。...由于J2EE没有指明标准的类加载器,使用的类加载器依赖与不同的容器像Tomcat、WebLogic,WebSphere加载J2EE的不同组件如War包或者EJB-JAR包。

    36.2K20

    Java面试集锦(一)之Java异常

    如果未找到处理程序,则应用程序将异常抛出到运行时环境,JRE将终止该程序。 Java异常处理框架仅用于处理运行时错误,编译时错误不由异常处理框架处理。 2....错误是超出应用程序范围的特殊情况,并且无法预测并从中恢复,例如硬件故障,JVM崩溃或内存不足错误。...Checked Exceptions是我们可以在程序中预期并尝试从中恢复的特殊情况,例如FileNotFoundException。我们应该捕获此异常并向用户提供有用的消息并正确记录以进行调试。...主线程java.lang.NoClassDefFoundError中的异常: 此异常有两种变体。第一个是您提供类全名和.class扩展名的地方。第二种情况是找不到Class。...主线程java.lang.NoSuchMethodError中的异常: main:当您尝试运行没有main方法的类时会出现此异常。

    1K40

    《论测试人员的自我修养》

    下面是血淋淋的例子: 搜狗某产品在进行通知栏消息下发时,没有严格遵守“先测试环境,后线上环境”的验证流程,直接将通知信息发布在线上环境,致使下发的通知存在异常无法打开落地页的问题,最终导致市场推广计划告吹...搜狗某产品,开发没有提交测试验证,私自打包上线,致使上线的数据存在异常,导致用户大面积出现崩溃问题,崩溃率成倍飙升。 好了,现在开始正题。...bug级别定义 具体的优先级别有以下几种 致命问题(一级bug) 致命问题:不能完全满足系统正常的功能操作要求,系统停止运行,系统的重要部件无法运行,系统崩溃或挂起等导致系统不能继续运行。...2.常规操作下因程序问题导致程序重启、死机或非法退出。 3.常规操作下系统出现死循环。 4.数据丢失或异常。 5.模块间数据传递及取值错误(如:输入A,预期结果应该是B,但实际结果不是B等)。...7.按照需求文档,功能未在程序中体现出来,即系统无此功能(据项目经理及相关负责人确认此功能必须具备的);功能不符合用户需求,功能实现不正确(由项目经理及相关负责人确认此功能必须具备的)。

    79110

    Bugless 异常监控系统 (iOS端)

    二、认识崩溃和异常 在讲解 Bugless 之前,让我们从三个层面来介绍,让大家认识App为什么会出现崩溃和异常,以及如何应对。...捕获此异常方法如下: [获取崩溃异常的代码实现] 注册异常捕获函数 [注册异常捕获函数] 以下是捕获流程图: [异常捕获流程图] App 启动初始化后,会判断是否开启异常监听...2)详细统计出,客户端请求超时次数,计算出超时请求设备的占比。 3)通过检查返回的数据是不是预期的JSON格式,监测是否出现域名劫持的情况。...包括: 1) 研发下单商品ID错误 2) 苹果应用内购买服务异常 3) 手机注册重复请求率高 6.3、准确性 与苹果iTunes Connect的崩溃日志做统计数值对比基本吻合。...Bugless崩溃上报正确性验证(Bugless VS Xcode Organizer Crashes) 仅漏报2台设备,评估是闪退后没有再启动,没上报上来。

    2.6K30

    服务器重启项目引发的nginx 502 Bad Gateway解决

    2.查阅资料,有个文章说,可能是内存磁盘满了…df -h 发现内存占用了83%,感觉也有可能: (下图是费了九牛二虎之力,省了10%磁盘空间后的截图。。。...重启ZK服务: sh bin/zkServer.sh restart 进入项目的zookeeper目录一顿操作,还是没有解决,继续报错:java.lang.NoClassDefFoundError...: org/apache/zookeeper/proto/SetWatches(此时已经第五次重启项目) 4.思考这个异常的解决方案,莫非是jar包冲突?...Tomcat webcontext初始化也失败,应用在挂起状态,但zkClient线程还是正常的; `zookeeper服务器重启,zkClient开始重连,连接上zookeeper服务器; `zkClient...触发watch的一些代码,ClassLoader尝试加载org/apache/zookeeper/proto/SetWatches类,但是发现找不到类,于是`抛出异常; `zkClient捕获到异常,

    2.1K30

    一次生产环境P0级事故分析(经典)

    崩溃 做过软件的都知道,虽然异常表象是一样的,但是实际产生的原因可能是完全不一样的。...2、会话保持需要依赖于软件架构的设计,如果会话保持无法做到,此套架构无法使用 当时负载均衡策略根据上述的方式做了调整,效现场果还是不行。...后来我们在公司内部完全模拟了现场的情况,采用了国内知名硬件厂商的负载均衡设备(不打品牌了,有打广告的嫌疑), 发现效果非常理想,可以达到预期的切换的效果。说明说做的策略没有任何问题。...分析了下,为什么开启Debug以后会造成CPU异常,原因就是系统启动的时候tomcat控制台疯狂刷日志,导致控制台假死,进而导致服务器CPU异常系统假死(为什么会这样,后面会详细描述)。...为什么控制台刷日志会造成CPU异常    但是最关键的问题来了,为什么控制台刷日志会造成CPU异常,这个也是阻碍我们排查问题的最大原因,我们也在自己笔记本上做了大量模拟,包括通过JMeter做压测,都没发现控制台刷日志会造成

    1.6K20

    如何全面监控 iOS 千奇百怪的崩溃

    前言 ---- App 上线后,我们最怕出现的情况就是应用崩溃了。但是,我们线下测试好好的 App,为什么上线后就发生崩溃了呢? 2....▐ 5.1 为什么要实现持久化存储 注意:这是因为,在保存完这些堆栈信息以后,App 就崩溃了,崩溃后内存里的数据也就都没有了。...进程挂起后所有线程都会暂停,不管这个线程是文件读写还是内存读写都会被暂停。但是,数据读写过程无法暂停只能被中断,中断时数据读写异常而且容易损坏文件,所以系统会选择主动杀掉 App 进程。...App 就会挂起。...如果 yourTask在3分钟之内没有执行完的话,系统会强制杀掉进程,从而造成崩溃,这就是为什么 App 退后台容易出现崩溃的原因。 后台崩溃造成的影响是未知的。

    2.2K20

    iOS_Crash 异常类型

    如果没有 Last Exception Backtrace 表明语言异常触发了崩溃,请查看崩溃线程的回溯以确定进程中的代码是否调用了 abort()。 ---- 3.2....在开始写入文件之前发出此请求,以便在应用程序挂起之前完成这些操作并放弃锁定。在程序扩展中使用 beginActivity(options:reason:) 来管理此工作。...优化执行后台任务的代码以提供 CPU 效率,或减少程序在后台运行时执行的工作量以解决此崩溃问题。...线程通信 API,如 perform(_:on:with:waitUntilDone:)、async(execute:) 或 dispatch_async,当无意识的调用导致频率远高于预期时会导致这种崩溃...因为触发此异常的通信频繁发生,通常多个后台线程具有非常相似的回溯,指示线程通信的起源。

    2K20

    干货分享|Java异常经典14问,你都能答对吗?

    如果未找到处理程序,则应用程序将异常抛出到运行时环境,JRE将终止该程序。 Java异常处理框架仅用于处理运行时错误,编译时错误不由异常处理框架处理。 2、Java中的异常处理关键字是什么?...异常进一步分为检查异常和运行时异常。 错误是超出应用程序范围的特殊情况,并且无法预测并从中恢复,例如硬件故障,JVM崩溃或内存不足错误。...Checked Exceptions是我们可以在程序中预期并尝试从中恢复的特殊情况,例如FileNotFoundException。我们应该捕获此异常并向用户提供有用的消息并正确记录以进行调试。...主线程java.lang.NoClassDefFoundError中的异常: 此异常有两种变体。第一个是您提供类全名和.class扩展名的地方。第二种情况是找不到Class。...主线程java.lang.NoSuchMethodError中的异常: main:当您尝试运行没有main方法的类时会出现此异常。

    91020

    使用 Kubernetes 模糊测试

    最无效的 Fuzz 方法 那么让我们来谈谈房间里的大象,我们为什么要哑 fuzz radare2 呢?那么什么是愚蠢的模糊测试?...模糊测试工具的一个关键组成部分是超时值subprocess.run如果二进制文件只是长时间挂起进程,它将被视为崩溃并保存到崩溃目录(cdir)。...因此,现在是检查这些文件的手动部分,以查看它是否确实是崩溃或是否导致radare2 挂起。...return 起初我认为“挂起”是由于文件大小造成的,但仔细一看,这是一个 2.5k 的文件,导致等待时间超过 5 分钟,直到 Radare2 自行终止。...我只是在“用剪刀跑步”,这个周末没有花时间去做。 问题:复制崩溃 Minikube 会为每个部署的 kvm 节点创建一个专用的 ssh 密钥对。

    1.6K20

    spring boot jsp之Intellij异常

    场景描述 项目中用到spring boot进行带页面的开发,从github上的simples中下载了对应的spring-boot-sample-web-jsp项目,经简单修改之后死活启动不起来,各种异常...spring-boot以简单容易上手为核心宗旨,可为什么在引入jar时就会出现这么多问题呢?...异常信息 异常一: 2016-06-17 11:04:14.216 ERROR 4684 --- [ main] o.s.boot.SpringApplication...: Application startup failed java.lang.NoClassDefFoundError: javax/servlet/ServletContext at java.lang.Class.getDeclaredMethods0...在网上搜索了各种此异常的解决方案都没有解决成功。 解决方案 在经过多次尝试,几乎要放弃的时候,突然想到一个问题,会不会是因为Intellij集成maven引入jar包时scope设置的问题。

    60320

    Java异常面试问题

    如果未找到处理程序,则应用程序将异常抛出到运行时环境,JRE将终止该程序。 Java异常处理框架仅用于处理运行时错误,编译时错误不由异常处理框架处理。 2. Java中的异常处理关键字是什么?...异常进一步分为检查异常和运行时异常。 错误是超出应用程序范围的特殊情况,并且无法预测并从中恢复,例如硬件故障,JVM崩溃或内存不足错误。...Checked Exceptions是我们可以在程序中预期并尝试从中恢复的特殊情况,例如FileNotFoundException。我们应该捕获此异常并向用户提供有用的消息并正确记录以进行调试。...主线程java.lang.NoClassDefFoundError中的异常: 此异常有两种变体。第一个是您提供类全名和.class扩展名的地方。第二种情况是找不到Class。...主线程java.lang.NoSuchMethodError中的异常: main:当您尝试运行没有main方法的类时会出现此异常。

    1K30

    基于接口数据变异的App健壮性测试实践

    两个项目均以“无应用程序崩溃或挂起”作为测试验证通过的标准。 在移动端App领域,健壮性可以理解为App运行时遭遇环境异常或者输入异常时客户端能够继续正常运行的能力。...比如用户操作App下单过程中,API请求出现故障未返回状态码为200的响应,App由于没有获取到预期接口响应的信息而发生崩溃,就会中断用户的使用流程。...动态检测,是指结合触发时机,构造并注入变异数据后,识别App运行时是否出现崩溃、挂起或业务功能模块异常。...比如将接口响应体中表示颜色含义的Key对应的Value值构造成非色值,然后检测客户端请求处理接口数据时是否出现崩溃或挂起。 下文重点介绍端到端的动态检测方案。...05 总结及展望 在健壮性工具建设一期里,我们实现了App页面加载展示场景的健壮性问题检测,支持崩溃、卡死和部分功能异常这三类异常检测。

    25810

    Akka 指南 之「断路器」

    示例 初始化 基于 Future 和同步的 API 显式控制失败计数 底层 API 断路器 为什么要使用它们?...假设第三方已经超过了他们的容量,他们的数据库在负载下崩溃了。假设数据库出现故障,将错误返回给第三方 Web 服务需要很长时间。这反过来会使调用在很长一段时间后失败。...回到我们的 Web 应用程序,用户已经注意到他们提交的表单看起来挂起要花更长的时间。好吧,用户做他们知道要做的事情,那就是使用刷新按钮,向已经运行的请求添加更多的请求。...如果由于某种原因,本例中的数据库没有响应,或者存在其他问题,断路器将打开并停止尝试一次又一次地攻击数据库,直到超时结束。...如果调用应增加失败计数,则此函数应返回true,否则返回false。

    56910
    领券