如何解决ADT17下Android第三方jar包NoClassDefFoundError的错误

如题所述

第1个回答  2015-01-18

  关于这个问题,下面我截的这几个图能更容易地说清楚:

  从左到右三个图分别是:
1.我的ADT16版的工程(三个截图的细节图标有些不一样,因为第一个是Windows的Eclipse下截的图,而另两个是在Mac的Eclipse下截的)
2.我修复前的ADT17版工程
3.我修复后的ADT17版工程


从中我们可以看到:
1.蓝色方框中的内容变化,是由新版补丁引起的(后面详细说明)
2.红色方框的内容变化,是我做的修复工作的结果


我所做的修复工作如下:
1.从标准的Java编译路径中移除第三方JAR包
 
  在工程名称上点右键 > Properties > Java Build Path > Libraries标签 >移除Android
SDK之外的所有第三方JAR包
2把JAR包所在的文件夹名称从“lib”修改为“libs”
   
这样做之后,ADT能自动找到所有在libs文件夹下的JAR包,把他们加到工程的依赖路径中,并直接显示在Android
Dependecies分类下。
3.清理整个工程(可能需要也可能不用)
4.完成修复,可以正常运行了


导致此问题的原因,是新版的ADT管理JAR包的方式发生成变化,旧版支持两种不同的JAR包引用(一是Android工程的库,另一个是标准的库),新版则把这两者合并到Android
Dependencies下了。