在Android应用程序中使用第三方库时的java.lang.NoClassDefFoundError(Aviary SDK)

时间:2013-05-28 01:48:02

标签: android

这让我非常疯狂。这个问题分散在Stack Overflow上有101个答案,但似乎对我没什么用。

以下是故事:

  1. 我下载了Aviary SDK(如果相关)并将他们的库项目导入我的工作区
  2. 我在Project下添加了他们的库 - > Android - >添加..并在那里检查
  3. 包含在运行时显然缺少的类(com.aviary.android.feather.FeatherActivity)的JAR(aviary-sdk.jar)在Project中的Android依赖项下监听 - > Java构建路径
  4. 项目正确构建,但在运行时它会在尝试启动此活动时抛出java.lang.NoClassDefFoundError
  5. 我尝试了很多东西(在Order and Export中检查和取消检查,在那里重新排序等等),但没有采取任何措施。我还尝试在/ libs文件夹中手动包含JAR,但是这个SDK依赖于该库项目中的一些其他东西(例如主题),并且引用两次的SDK也不起作用。

    我完全被这里难住了。我看过各种其他答案,似乎没什么用。我开始觉得不再支持这种引用其他库的方法......?

    编辑:我创建了一个全新的Android项目并在那里重现了问题。我怀疑它在构建环境中必须是愚蠢的东西: aviary test app aviary test app project properties aviary test app build path

3 个答案:

答案 0 :(得分:1)

您是否尝试将aviary-sdk.jar作为外部jar导入?

  1. 将aviary-sdk.jar复制到项目的libs文件夹中
  2. 右键单击您的项目,构建路径 - >添加外部库
  3. 从项目内的libs文件夹中添加aviary-sdk.jar
  4. 希望这有帮助,祝你好运^^

答案 1 :(得分:1)

尝试一些事情,

第1号:关于冲突的罐子,它可能是指支持库。因此,请继续右键单击您的库项目,然后选择“添加支持库”选项。这将下载最新的支持库,然后对您自己的应用程序项目执行相同操作。

问题是该库可能使用的是与您不同的support.jar。

编号2:如果这不能解决问题,请转到项目属性,Java Build Path,然后选择“Order and Export”,并确保选中“Android Private Libraries”和“Android Dependencies” 。

清理项目,然后再次尝试运行。

答案 2 :(得分:-1)

想出来。

在设置中尝试了所有内容后,我认为这是IDE的错误。我删除了我的ADT并启动了一个新工作区,新工作区,导入了我的所有项目(原样),并从那里启动。一切正常。

我想这总是在抱怨Vim比任何IDE更好......我得到了惩罚......雅得到了我,Eclipse。

心怀不满的叹息