添加Joda时间

Cha*_*ham 19 java android noclassdeffounderror jodatime libs

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

 Could not find class 'org.joda.time.DateTime', referenced from method xxxx
 java.lang.NoClassDefFoundError: org.joda.time.DateTime    
Run Code Online (Sandbox Code Playgroud)

这些是我遵循的步骤:

  1. 在eclipse中创建你的android项目.
  2. 下载Joda时间
  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();
Run Code Online (Sandbox Code Playgroud)

导入后:

import org.joda.time.DateTime;
Run Code Online (Sandbox Code Playgroud)

Sud*_*hul 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"内部/同时也被捆绑在一起.

  • 哈利路亚!那就做到了!你能解释为什么我需要为Android做那个吗? (4认同)