eclipse中 NoclassdefFoundError错误的分析

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

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

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

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

然后我们来讨论为什么会产生这样的后果。最终还是library中的V4包与项目中的V4包是不匹配的。gooole发布了很多版本的V4包。所以

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

如果再项目中出现V4包不匹配的时候也需要检查这个文件。

有时候我们出现错误但是再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包复制该目录下。

原文地址:https://www.cnblogs.com/taochen-go/p/4973820.html