Android Studio 运行项目报错:org.objectweb.asm.tree.analysis.AnalyzerException: Execution can fall off

Android Studio项目,公司主要的一个APP项目,还算庞大,有段时间没过问该项目,有需求要改,又来关注这项目代码,update代码到最新,android studio运行项目,就是run不起来啊,clean项目success,rebuild项目success,再run,就会报错,如下:
error::xxxxxx_trunk:transformClassesWithInstantRunForLeshiDebug FAILED
Error:Execution failed for task ‘:xxxxxx_trunk:transformClassesWithInstantRunForLeshiDebug’.

org.objectweb.asm.tree.analysis.AnalyzerException: Execution can fall off end of the code
Information:BUILD FAILED
这里写图片描述
网上查找各种方案,换gradle版本,升级sdk,sdk相关的tools,无数次的clean->rebuid->run.都没有成功。找同事帮忙,结果工作笔记本AndroidStudio环境瘫痪了,拿来自己的mac本开发,结果也是运行不起来。问了问同事用的jdk,他用的jdk1.8,而我的都是1.7,我在mac上装了jdk1.8,欢呼吧,能运行起来。于是猜测可能是jdk版本导致的问题,把自己的工作笔记本恢复系统,重装开发环境jdk1.8后,也装了1.7专门来实验下,果不其然,jdk1.7还是run的时候会报错,换回1.8就OK。
查了下错误中asm到底是啥玩意儿,大概是这样:
ASM是Java字节码生成开源框, 是一个 Java 字节码操控框架。它能够以二进制形式修改已有类或者动态生成类。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。
解决方案:换成jdk1.8.clean项目->rebuild项目->run就成功了。

### 回答1: `ClassNotFoundException: org.objectweb.asm.Type` 是一个Java异常,表示无法找到名为 `org.objectweb.asm.Type` 的类。ASM是一个用于动态生成和修改Java字节码的工具库,`org.objectweb.asm.Type` 是ASM库中的一个类。 当出现 `ClassNotFoundException: org.objectweb.asm.Type` 异常时,可能有以下几种原因: 1. 缺少ASM库:你的代码依赖于ASM库,但是没有将它添加到项目的构建路径中。你可以通过将ASM库添加到项目的依赖中来解决这个问题,例如在Maven项目中,在pom.xml文件中添加ASM的依赖项。 2. 版本不匹配:你使用的ASM库的版本与你的代码不兼容。可能是你的代码使用了一个旧版本的ASM,而该类在新版本中已被删除或重命名。你应该检查你的依赖项,并确保使用与代码兼容的ASM版本。 3. 类名错误:在代码中,你可能错误地引用了 `org.objectweb.asm.Type` 类,或者错误地拼写了类名。请仔细检查你的代码,确认类名的正确性。 要解决 `ClassNotFoundException: org.objectweb.asm.Type` 异常,你可以尝试以下几个步骤: 1. 检查依赖项:确保ASM库已正确添加到项目的构建路径中,并且版本与你的代码兼容。 2. 更新ASM库:如果你使用的ASM库版本较旧,请尝试更新到最新版本并重新构建项目。这可能会修复由于版本不匹配导致的问题。 3. 仔细检查代码:确保在代码中正确引用了 `org.objectweb.asm.Type` 类,并且没有发生拼写错误。 如果上述步骤都没有解决问题,你可以考虑向相关社区或论坛寻求帮助,提供更详细的信息,以便他人能够更好地理解并帮助你解决这个异常。 ### 回答2: ClassNotFoundException: org.objectweb.asm.Type是Java中的一个异常类型,表示在运行时无法找到指定的类。这个异常通常在使用反射或动态加载机制时出现,当试图加载一个不存在的类时,就会抛出该异常。 org.objectweb.asm.Type是一个类库ASM中的一个类,它提供了对Java字节码中类型的描述和操作。ASM是一个用于在Java字节码级别进行操作的工具包,它允许以程序方式访问和修改类文件结构。org.objectweb.asm.Type类提供了一系列方法来获取和操作类、字段和方法的类型信息。 当出现ClassNotFoundException: org.objectweb.asm.Type时,意味着在运行时无法找到这个org.objectweb.asm.Type类。可能存在以下几种情况导致这个异常出现: 1. 缺少相关的依赖库:org.objectweb.asm.Type类是ASM库的一部分,如果在项目中没有正确引入ASM库或者ASM库的版本不兼容,就会导致无法找到这个类。需要确认是否正确引入了ASM库并且版本匹配。 2. 包名或类名错误:如果org.objectweb.asm.Type类的包名或类名错误,也会导致无法找到这个类。需要确认包名和类名是否正确。 3. 类路径问题:如果org.objectweb.asm.Type类所在的路径没有包含在JVM的类路径中,同样也会导致无法找到这个类。需要确认类路径配置是否正确。 解决这个异常的方法包括: 1. 确认ASM库的正确引入和版本兼容性。 2. 检查org.objectweb.asm.Type类的包名和类名是否正确。 3. 检查类路径配置是否正确。 总之,ClassNotFoundException: org.objectweb.asm.Type是在运行时无法找到org.objectweb.asm.Type类时抛出的异常。需要检查相关的依赖库、包名、类名和类路径配置来解决这个问题。 ### 回答3: `ClassNotFoundException: org.objectweb.asm.Type` 错误是由于Java程序在运行时找不到 `org.objectweb.asm.Type` 类而引发的。这通常是由以下几种情况导致的: 1. 缺少相关的库或依赖:当程序使用某个库或依赖项,但该依赖项没有正确地添加到项目的类路径中时,就会出现此错误。解决方法是确认是否有导入正确的库,并将其正确添加到程序的类路径中。 2. 版本不兼容:如果项目中的库或依赖项与其他库之间存在版本冲突,就可能导致无法找到所需的类。解决方法是检查项目中使用的所有库的版本,并确保它们与彼此兼容。 3. 编译错误:有时,在编译源代码时可能会出现错误,如缺少引入语句或语法错误等。这会导致无法生成正确的字节码文件,进而在运行时无法加载所需的类。解决方法是检查源代码中的错误,并进行修正。 4. 类文件丢失或损坏:如果程序依赖的类文件丢失或损坏,就会导致无法找到所需的类。解决方法是确保所需的类文件存在且完好无损,如果需要,可以尝试重新编译或重新安装程序。 5. 类路径配置错误:如果程序的类路径配置有误,就会导致无法找到所需的类。解决方法是检查类路径配置是否正确,并进行必要的更正。 总之,`ClassNotFoundException: org.objectweb.asm.Type` 错误的解决方法是仔细检查程序的库和依赖项、版本兼容性、编译错误、类文件的完整性以及类路径配置是否正确。根据具体情况进行相应的调整和修复,以确保程序能够正确加载所需的类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值