19

我正在构建一个使用时间的应用程序。我决定使用 Joda 时间。我正在尝试将 joda time 添加到我的应用程序中。我没有将.jar文件添加到库的经验。我遵循了这些步骤(见底部),或者我是这么认为的。我的项目没有显示任何错误,但是当我运行一个简单的测试时:DateTime test = new DateTime();我强制关闭并出现以下错误:

 Could not find class 'org.joda.time.DateTime', referenced from method xxxx
 java.lang.NoClassDefFoundError: org.joda.time.DateTime    

这些是我遵循的步骤:

  1. 在 Eclipse 中创建你的 android 项目。
  2. 下载乔达时间
  3. 在 Eclipse 中,在包资源管理器中查找您的项目,然后右键单击它,然后调用它New -> Folder -> libs注意:我没有这样做,因为我已经有一个名为libs
  4. 复制(或)拖放joda-time-2.1.jar到新创建的libs文件夹中。
  5. 再次右键单击您的项目(在包资源管理器中),然后Properties -> Java Build Path -> Libraries -> Add Jars -> joda-time-2.1.jar.

现在您可以使用以下代码进行测试:

DateTime test = new DateTime();

导入后:

import org.joda.time.DateTime;
4

1 回答 1

19

由于它是一个 Android 项目,因此仅引用 Joda jar 文件是行不通的。您需要将该 jar 文件与您的 apk 捆绑在一起,可以这样完成:-

  1. 属性 -> Java 构建路径 -> 订单和导出

  2. 检查joda-time-*-*.jar并单击确定。你完成了。


说明:单独引用 jar 只会解决 Eclipse(或任何其他 IDE)中的编译问题,但是当创建apk时,“joda-time”jar 文件不会与您的“apk”一起导出/捆绑。这就是它抛出NoClassDefFoundError的原因。

但是,当您在Order & Export中检查 joda-time jar 时,它会确保该 jar 在创建时也捆绑在您的“apk”内部/一起。

于 2013-03-28T06:06:36.130 回答