android点滴26:java.lang.NoClassDefFoundError错误

本文详细解析了Java运行时出现的类加载异常问题,并提供了一种解决方案,即通过将外部引用的jar包复制到项目的libs目录下以确保类能够被正确加载。

    这个问题实在是太令人蛋疼了,因为从外面根本就看不出到底错在哪里,逻辑全部正确但是就是找不到这个类。在错误之前会看到Unable to resolve superclass of 的warn,也就是不能调用错误类的超类。这个runtime异常是JVM抛出的,当JVM发现一个classloader试图去Load一个class,而此class在当前的classloader tree中找不到的时候,就会抛出此异常。

    当产生这个错误时绝大部分情况下都跟引用的jar有关系,有可能是import错误,或者导入jar错误。从这方面着手吧。针对Android的问题,是平台的ADT的漏洞,在ADT17或之后的版本中,如果你导入了外部的jar,那么这个jar会被放入到“引用的库”中,编译时不会将其拷贝到.dex文件中

    解决办法:将引用的外部jar拷贝到libs目录下,如果没有此目录,那么在工程目录下(和src,bin目录同一水平)创建一个libs目录并将引用的jar拷贝到此目录下即可。

转载于:https://my.oschina.net/u/266531/blog/163753

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值