Android Eclipse NoClassDefFoundError用于外部.jar文件
我遇到了一个奇怪的错误。 我有一个使用外部库的Android项目,特别是:
- android-support-v4.jar(用于Android 1.6中的Fragment支持)
- GoogleAdMobAdsSdk-4.3.1.jar(针对广告)
该项目运行良好,直到我更新了插件的某些方面(不记得具体细节,因为我没有太多的关注),然后,每当我尝试从上述.jar文件(或任何类它的子类,甚至是由我定义的),我会得到一个java.lang.NoClassDefFoundError。 经过多次search,我找不到答案,所以我真的很难过。
我相信这个问题与我的IDE设置有关,它与实际代码很less有关,所以除非是绝对必要的,否则我不会发布。
你需要阅读 – 处理Android项目中的依赖关系 。
此链接也是有用的 – 与ADT 17 ClassDefNotFoundError
基本上,创build一个名为libs
的文件夹,并放置所有的jar
文件。 最近的更新会自动照顾你rest。 你不需要再编辑你的path。
到目前为止,Android并不支持Java1.7。 使用合规性级别1.7构build的Jars不能在Android应用程序中使用。 在导出jar文件之前,用合规性级别5.0或6.0重build您的Java项目。
我发现这个post通过谷歌和上面的答案没有解决我的问题。 希望我说的话对别人有帮助。
如果在升级到ADT 22后看到NoClassDefFoundError
,请在Eclipse中尝试以下操作:
- 转到项目属性 → Java构buildpath → 订单和导出选项卡。
- 检查Android专用库选项。
同时也警告其他已经更新到r17有很多依赖的人。 我在我的构buildpath上有另一个引用的项目,并且在互联网上的这个r17问题上遵循所有的指导后仍然不起作用。
一个小时后发现我的引用的项目使用了比我的主要项目更老的外部Jar版本。 当试图编译主项目时,由于这个jar版本的差异,Eclipse会放弃,我从来没有注意到Console中的警告消息。
解决方法是将新版本的外部jar文件复制到被引用的项目的libs目录中。
哇 – 这样的生产力杀手…..
我今天也遇到了这个错误,因为更新到了Android SDK r17 。 @aneal指出的链接没有讨论的是如何处理外部运行时库(例如在他们自己的标题下导入的那些库,而不是导入的用户库)。
解决这个问题最简单的方法是在构buildpath中更改构build顺序。 只需右键单击您的项目,然后select属性 。 从这里selectJava Build Path 。 在显示屏顶部,select标签顺序并导出并移动Android X上方的GoogleAdMobAdsSdk-4.3.1.jar (将xreplace为您使用的版本)。 接下来,清理你的项目并运行它。 你应该很好走!
我解决这个问题的方法是:右键单击项目并select构buildpath。 在出现的select中selectconfiguration构buildpath。 之后,看看你的库是否在库文件夹中,然后select顺序和导出选项卡,然后在那里select所有的jar文件。 然后select确定并运行您的项目。
如果您在Maven IDE(m2e)中使用Eclipse,请转到“Java构buildpath”,然后select“导出和导出”,最后检查项目“Maven Dependencies”并将其下拉到列表的底部。 您应该在同一工作区中执行与项目引用相同的操作。 每当我在新电脑上安装项目时,
- Android ADT 21.0警告:隐式使用默认语言环境
- 当我加载ADT时,为什么我收到错误“Android SDK需要Android Developer Toolkit版本XX.XX或以上?
- 如何在Android中使用JPEG创buildGIFanimation(开发)
- Android NDK构build,Method无法parsing
- “SDK平台工具组件缺失!”
- 如何将javadoc或源文件附加到libs文件夹中的jar文件中?
- Scala中的大量Android开发
- Android用省略号字符replace“…”
- 此Android SDK需要Android Developer Toolkit版本23.0.0或更高版本