【问题标题】:Android external JarAndroid 外部 Jar
【发布时间】:2014-02-25 11:21:33
【问题描述】:

我有一些带有 java 的 api,我需要在我的 android 应用程序中使用它。

当我使用它并包含所有包和类时,它工作正常。现在我使用导出从我的 java 项目创建 JAR 文件。现在,当我将 jar 作为外部 jar 添加到我的 android 应用程序时,我的所有错误都消失了,但是当我运行我的应用程序时出现错误

java.lang.NoClassDefFoundError.

我很早就在我的应用程序中看到过这种错误,这是 Jar 的问题。如何生成 JAR 文件以避免这种情况?

【问题讨论】:

  • 你用的是什么IDE?
  • 您是否构建了包含引用的 jar?
  • 在 Eclipse BuildPath 中再次检查您的库是否已“导出”。这意味着它将在您的 apk 中被索引。 BuildPath 对话框的最后一个选项卡,必须检查您的库。
  • 您是否已将 jar 复制到您的 /libs 文件夹中?如果我没记错的话,Android 只将该目录用于外部 jar,即使您可以将其添加到 Eclipse 中任何位置的构建路径。
  • 将您的 jar 包含在构建设置的导出列表中

标签: java android noclassdeffounderror


【解决方案1】:

您可能已经使用 jdk 1.7 构建了该 jar 文件。使用 jdk 1.7 编译的类不包含在 apk 文件中。在导出 jar 之前尝试将 java 编译器更改为 1.6。在 Eclipse 中转到 Window -> Preferences -> Java -> Compiler。

【讨论】:

    【解决方案2】:

    将 jar 文件复制到您的 android 项目的 libs 文件夹中。

    之后,您可能想要清理您的项目并重新构建它。您甚至可以手动清除 bin dir 内容。

    【讨论】:

      【解决方案3】:

      您必须将 jar 文件添加到项目的构建路径中。

      为确保它已在您的 APK 中导出,您还必须在项目的构建路径首选项中的 Order and Export 选项卡下检查它。

      【讨论】:

        【解决方案4】:

        更好的方法可能如下:

        1. 从您的项目中删除当前导出的 jar
        2. 选择要导入的项目,右键->属性->android->勾选'mark as library'
        3. 右键单击您当前的项目 -> 属性 -> android -> 找到底部的“添加”按钮。单击它并选择库项目。

        使用这种方法,库项目中的任何更改都将反映在您当前的项目中(至少在做一个干净的项目之后)。

        【讨论】:

          【解决方案5】:

          我做到了!!!谢谢大家。 所以解决方案是:
          1. 在导出 jar 之前将 java 编译器更改为 1.6(如 @Lecho 所述)
          2.将Jar文件移动到lib文件夹
          所以它有效!谢谢大家

          【讨论】:

            猜你喜欢
            • 2012-12-02
            • 1970-01-01
            • 2011-06-22
            • 2016-02-26
            • 1970-01-01
            • 2011-10-15
            • 2013-05-22
            • 2013-11-26
            • 2011-04-02
            相关资源
            最近更新 更多