【问题标题】:NoClassDefFoundError: Problems with linking my own jar to Android projectNoClassDefFoundError:将我自己的 jar 链接到 Android 项目时出现问题
【发布时间】:2012-07-07 00:18:09
【问题描述】:

所以,我正在尝试为 Android 开发一个客户端-服务器应用程序。为此,我创建了一个引擎,我将在服务器和 Android 应用程序中使用它并将其导出为 .jar 文件。

在服务器端(简单的后台 java 应用程序)使用这个 engine.jar 没有问题,但是我在将提及的 .jar 文件链接到我的 android 项目时遇到了一些问题。

要链接 engin.jar 我遵循一些步骤:

  • 在我的 android 项目中创建了“libs”目录
  • 在此文件夹中导入engine.jar

在 Android Dependences 组中可以看到这个 engine.jar。我也可以使用该 .jar 中的所有类,Eclipse 不会将它们标记为错误。 我的项目编译正常,但是当我尝试从 engine.jar 创建任何对象时应用程序崩溃并出现以下错误:

04-15 23:18:12.885: E/AndroidRuntime(17409): java.lang.NoClassDefFoundError: Common.Message.Message

我想我什么都试过了。任何人都可以分享他对所描述情况的根本原因的想法吗?

【问题讨论】:

  • 你是否将jar文件添加到Eclipse中的构建路径中?它应该出现在“引用的库”组中。
  • @smichak 在 SDK Tools v18+ 中,“libs”文件夹中的库通过“Android Dependencies”自动添加到构建路径
  • 正如之前评论中所说,“引用库”自 Android SDK 17 修订版以来已重命名为“Android 依赖项”
  • Common.Message.Message 应该是您的课程之一吗?如果是这样,您是不是缺少包名?
  • 我猜没有。我已经按如下方式导入了我的类import Common.Message.Message; 并创建了导入类Message m = new Message("id"); 的实例

标签: java android jar


【解决方案1】:

我也遇到了同样的问题。我通过执行以下操作解决了它:

右击项目目录->Build Path->Configure Build Path->选择标签Order and Export->勾选/选中相关.jar文件的复选框->按Ok

希望这也能解决您的问题。

【讨论】:

  • BOOM 似乎就是这样。非常感谢,这是一个真正的紧急情况。
  • 那么你为什么不给@Arun他的赏金呢?
  • Artem,我试过了,但系统不允许我,因为没有足够的时间过去。
【解决方案2】:

供将来使用:

在项目的根目录下创建一个名为“libs”的文件夹,然后添加你要添加的jar,前面评论中提到的所有导出内容都会自动完成。

【讨论】:

    【解决方案3】:

    您的服务器和客户端似乎没有相同的通用 jar 类。在编写客户端服务器应用程序时,您需要确保有一些通用代码项目,这主要是将来成为一个 lib 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 2015-10-17
      • 2012-07-17
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      相关资源
      最近更新 更多