zoukankan      html  css  js  c++  java
  • 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包复制该目录下。

  • 相关阅读:
    Python3 日期与时间戳相互转换
    PHP 二维数组排序保持键名不变
    C# Command命令(行为型模式)+队列 实现事务,带异步命令重试机制和生命周期
    领域驱动系列五模型驱动设计的构造块
    领域驱动系列四之模型驱动
    领域驱动系列三
    领域驱动系列二策略模式的应用
    领域驱动系列一基本概念介绍
    Redis学习系列七分布式锁
    Redis学习系列六ZSet(有序列表)及Redis数据结构的过期
  • 原文地址:https://www.cnblogs.com/taochen-go/p/4973820.html
Copyright © 2011-2022 走看看