当类明显存在时,我得到一个java.lang.NoClassDefFoundError

时间:2012-05-19 16:38:23

标签: android eclipse maven ant noclassdeffounderror

我在运行时尝试使用该库时出现以下错误:java.lang.NoClassDefFoundError:com.google.api.client.extensions.android2.AndroidHttp 我已经将这个库添加到我的项目中,它是Maven依赖项的第一个jar(虽然我不是100%用于Maven)。

另外,我的理解是Ant正在libs文件夹中寻找jar,但是Maven正在使用自己的文件夹,这对其他项目来说很好。所以我迷失了。如何解决这个问题的任何线索/帮助将非常感激!

enter image description here

enter image description here

enter image description here

4 个答案:

答案 0 :(得分:3)

似乎你没有正确添加jar。你似乎错过了第6步。

如果您想将此jar包含在Android项目中,那么您只需在Eclipse环境中执行以下步骤。

  1. 在项目面板中右键单击您的项目。
  2. 选择“属性”选项。
  3. 在“属性”窗口中,单击“Java Build Path”。
  4. 在该窗口的右侧,选择“库”选项卡。
  5. 点击“添加外部JAR”按钮,然后将此库添加到之前保存的位置。
  6. 现在点击“订购和导出”标签,然后点击“JarName.jar”
  7. 点击“确定”。

答案 1 :(得分:2)

作为快速解决方法,勾选Maven Dependencies窗口中的Java Build Path - Order and Export应解决NoClassDefFoundError。

根据您附上的屏幕截图,看起来您在Eclipse中通过google建议的标准方式在Eclipse中设置(或导入)您的Android项目,但也以某种方式使用Maven管理一些jar依赖项。不推荐这样做,你应该使用纯粹的google标准方式(自r17以来的libs /文件夹)或者完全将你的android项目用于依赖管理。

答案 2 :(得分:0)

似乎未导出库。

在项目文件夹下,打开.classpath文件,仔细检查以下行:

<classpathentry exported="true" kind="lib" path="google-http-client-android2-1.8.3-beta.jar"/>

如果exported="false",请将其更改为exported="true"

答案 3 :(得分:0)

在项目文件夹下创建一个名为libs的新文件夹,并将此库添加到该文件夹​​中。

我遇到了与kSOAP库相同的问题,这解决了我的问题...

修改

我刚看到你已经拥有该文件夹了。添加库...