【问题标题】:Adding external jar to android project将外部jar添加到android项目
【发布时间】:2012-05-03 19:53:07
【问题描述】:

我有以下问题:

我有两个项目:jre1.7 和 android 2.1。我想首先构建一个 jar 文件并将其用作第二个项目中的框架。我正在使用 eclipse,并且我已经完成了添加外部 jar 时通常会做的事情。 (右键单击项目-构建路径-添加外部罐子),似乎一切都很好,出现了引用的库文件夹,它包含罐子。

但是当我尝试编译 Android 项目时,它给出了 NoClassDefFound 错误。我做错了吗?

【问题讨论】:

  • 你用的是哪个adt版本?

标签: java android jar classpath


【解决方案1】:

我会假设您使用 ADT 17,Android 存在类路径问题,您可以阅读它here,您只需转到“导出”选项卡并检查 jar。

【讨论】:

  • 我安装了 ADT 18,他们没有解决问题吗?检查导出选项卡中的 jar 没有帮助。
  • 尝试将 jar 添加到您的 libs 文件夹中,并将其添加到类路径中而不导出它。
  • 您的意思是在配置 Bulid Path 时选择 Add Jar 而不是 Add external Jar?
  • 我知道。此外,我在这里发布问题之前都尝试过,但我只是不明白“将 jar 添加到类路径而不导出它”是什么意思,请你解释一下吗?
【解决方案2】:

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

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

【讨论】:

  • 我已经完成了 1 到 5,现在我尝试在 Order 选项卡中检查 jar,但它并没有解决问题。
  • 完成上述所有操作后,只需清理并刷新您的项目
【解决方案3】:

如果你使用 Android SDK & ADT r17 或更高版本,现在谷歌推荐的添加依赖的方法是:

  1. 在项目根文件夹下创建 libs/ 文件夹。
  2. 将所有依赖jar放入libs/文件夹。

Android SDK 现在会自动为您提取和解析依赖项,您不再需要其他手动设置(将 jar 添加到项目构建路径)。查看r17 changelog

添加了自动设置 JAR 依赖项的功能。 /libs 文件夹中的任何 .jar 文件都将添加到构建配置中(类似于 Ant 构建系统的工作方式)。此外,库项目所需的 .jar 文件也会自动添加到依赖于这些库项目的项目中。 (more info)

另外,官方开发指南中并没有明确说明Android现在完全支持java 7,最好还是继续使用JDK 6。

希望这会有所帮助。

【讨论】:

  • 不,这也无济于事:(
  • 请注意,如果您的java项目生成的jar文件依赖于其他第三方jar库,您还需要将所有第三方jar库复制到libs/文件夹中。
  • jar 文件有依赖关系,我没想到我也必须将它们复制到 libs 文件夹中,但是我生成了没有依赖关系的新测试 jar 文件,它不起作用也是。
  • 你的问题很流行也很明显,一些jar依赖没有被dexed并内置到最终的apk中。解决方案也很简单,找到并找到包含缺少的类的 jar,然后使用我们提供的这 3 个答案之一来包含 jar 依赖项,它应该可以解决您的问题。
  • 谢谢你,但我不太明白找到包含丢失调用的 jar 是什么意思?考虑到 LogCat 输出,我想包含的 jar 中只有缺失的类。你的意思是我应该再找一些罐子?请您说的更具体些。
猜你喜欢
  • 2013-09-02
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多