2
AndroidRuntime(1109): java.lang.NoClassDefFoundError: sun.misc.BASE64Decoder 

尝试使用依赖于 BouncyCastle 加密库的组件 jar 时遇到此错误。在 Java Servlet 应用程序中使用相同的组件 jar 没有任何错误,所以我很困惑。我的 Android 应用程序中的 jar 引用与我为 Web 应用程序所做的相同,而没有特定于 Web 的引用。

请帮忙!

编辑

作为记录,jar 位于构建路径和导出中。它现在是导出中的第一项,但我仍然收到错误消息。

在此处输入图像描述

让我重申一下,这个 SAME 库在 Java Serlvet 应用程序中运行良好。

4

5 回答 5

0

您是否将 jar 文件添加到您的 Java 构建路径中?如果它已添加但仍然不起作用,请转到“订购和导出”并检查文件的标记并重建项目,看看它有帮助。

于 2012-11-21T15:41:23.493 回答
0

确保您的 jar 在 Project properties > Java build bath > Order and export 中导出

于 2012-11-21T15:41:31.243 回答
0

您会收到此错误的原因只有三个:

  1. 这个类真的不存在。如果您使用官方示例中的代码并获取此代码,请确保您拥有该库的最新版本
  2. 您尚未将 jar 添加到构建路径中。要解决此问题,请右键单击 Eclipse 中的 jar,然后执行 Build Path ► Add to Build Path。
  3. 您的 jar 不在/libs文件夹中。当您将 jar 添加到构建路径时会发生这种情况,但较新版本的 ADT 需要它位于/libs. 将其放在那里并将其重新添加到构建路径中。

大多数情况下,出现此类错误是因为较新版本的 ADT 要求所有外部 jar 都位于 `/libs 文件夹中。您的同事可能与您使用的版本不同,因此出现了错误。

于 2012-11-21T15:43:13.243 回答
0

如果您NoClassDefFoundError在运行时获得,那么我怀疑您没有在运行时包含您的工作。您必须像这样检查每个 .jar 的复选框:

在此处输入图像描述

于 2012-11-21T15:58:36.003 回答
0

我解决了这个问题 - 详细信息可以在这个SO帖子中找到。

于 2012-11-22T00:53:21.570 回答