如果没有将jar放在libs文件夹中,则找不到jar文件中的类

时间:2013-01-31 20:09:55

标签: android

我在我的android项目中使用了第三方jar文件。当我将jar添加到构建路径时,通过eclipse项目 - >属性 - > java构建路径 - >图书馆 - >添加外部jar。

项目编译正常,直到该代码行运行,该代码行使用该jar中的任何类,并且我在运行时遇到类未找到异常,程序崩溃。

我通过将第三方jar文件复制到项目的libs文件夹来解决它。未找到的课程会消失。

问题: 有人可以说明为什么这是必需的,为什么它不仅仅使用项目属性的引用,尽管它编译得很好..为什么我必须明确地将它复制到libs文件夹?

2 个答案:

答案 0 :(得分:0)

  

当我将jar添加到构建路径时,通过eclipse项目 - >属性 - > java构建路径 - >图书馆 - >添加外部jar。

这不适合与Android构建工具一起使用。

  

我通过将第三方jar文件复制到项目的libs文件夹来解决它。未找到的课程会消失。

正确。

  

有人可以说清楚为什么这是必需的,为什么它不仅仅使用项目属性的引用,尽管它编译得很好..为什么我必须明确地将它复制到libs文件夹?

因为只有libs/中的JAR被添加到APK文件中。 Java构建路径纯粹是一个编译时间的东西,没有绑定到Android的APK文件包装。

答案 1 :(得分:0)

文件夹“libs”中的所有库都可以通过Android Eclipse插件找到,并添加到项目的“Android Dependencies”项中。这是一个更好的例证 :http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17