2013-03-28 130 views
19

我正在构建一个使用时间的应用程序。我决定使用乔达时间。我正在尝试将joda时间添加到我的应用程序中。我没有将.jar文件添加到库中的经验。我跟着these steps(见底部),或者我想。我的项目没有显示任何错误,但是当我运行一个简单的测试: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. 下载Joda Time
  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; 
+1

清理项目并构建。 – rajeshwaran 2013-03-28 06:00:17

+0

你可以开始使用jodatime,在你的类文件的开头添加相关的import语句(或者只输入DateTime,然后CTRL + SPACE和eclipse应该为你添加import) – rajeshwaran 2013-03-28 06:05:45

+0

对。它被正确导入。 – 2013-03-28 06:06:40

回答

20

既然是Android项目,只是引用乔达jar文件是不行的。你需要捆绑的是jar文件与您的APK,可这样进行沿: -

  1. 属性 - > Java构建路径 - >在线订单&出口

  2. 检查的joda-time-*-*.jar和点击Ok。你完成了。


说明:单独引用的jar只解决在Eclipse中编译问题(或任何其他IDE),但是当APK创建“乔达时间” jar文件韩元不会与您的“apk”一起导出/捆绑。这就是为什么它会抛出NoClassDefFoundError

但是,当您检查乔达时JAR在订单&出口,它会确保罐子也被捆绑内/带时,它会创建你的“APK”一起。

+4

哈利路亚!那样做了!你能解释为什么我需要这样做的android? – 2013-03-28 06:11:32