eclipse中 NoclassdefFoundError错误的分析

 在我学习侧边栏菜单栏学习的时候。接触到library的引用。再运用过程当中一直出现了一个错误,那就是  NoclassdefFoundError。学习

发现这个错误的时候个人第一反应就是,难道我没有在清单文件中注册么,我检查了下, 结果不是的。ui

我上网查了,有人说是v4包冲突致使的,我就反复的去不断的Remove v4包,而后添加v4包。始终没有解决。ci

后来我发现我Remove的v4包的地方搞错了。应该是Remove lib目录下的v4包。才能让错误消失。。最后我解决了问题,io

 

而后咱们来讨论为何会产生这样的后果。最终仍是library中的V4包与项目中的V4包是不匹配的。gooole发布了不少版本的V4包。因此class

不一样的项目中V4包不一样时很正常的。检察V4包是否相同的办法是,查找这个文件的MD5值,若是同样的证实这两个文件是同样的。引用

若是再项目中出现V4包不匹配的时候也须要检查这个文件。gc

 

有时候咱们出现错误可是再logcat中没有提示,这时候咱们能够在Window目录中promble,这里会显示全部的错误。方法

  下面咱们来讨论这个lib目录下的V4包和Android Dependencies目录下V4包的区别项目

在ADT17以前,若是要在Android项目中引入外部JAR包,这种方式是正确的,只需在项目属性的Java Build Path中选择Add External JARs,而后选择相应JAR包便可。文件

可是,在升级到ADT17以后,Android项目下多出了一个Android Dependencies目录,以前经过Add External JARs加入的jar包依然出如今Referenced Libraries目录之下,可是彷佛已经被弃用,虽然没有提示任何错误,可是在运行时会抛出ClassNotFoundException。

解决方法是将JAR包加入到Android Dependencies下,其中一个默认引入目录是libs,所以只要将JAR包复制该目录下。

相关文章
相关标签/搜索