【问题标题】:Joda-Time 2.1 and Android - NoClassDefFoundErrorJoda-Time 2.1 和 Android - NoClassDefFoundError
【发布时间】:2012-12-03 06:20:33
【问题描述】:

尝试在 Android 应用 (API 15) 中使用 DateTime,但在 logcat 中获得以下内容:

E/dalvikvm(794): Unable to resolve Lorg/joda/time/base/AbstractInstant; annotation class 1383
D/AndroidRuntime(794): Shutting down VM
W/dalvikvm(794): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
E/AndroidRuntime(794): FATAL EXCEPTION: main
E/AndroidRuntime(794): java.lang.NoClassDefFoundError: org/joda/convert/ToString
E/AndroidRuntime(794):  at java.lang.reflect.Method.getDeclaredAnnotations(Native Method)
E/AndroidRuntime(794):  at java.lang.reflect.Method.getDeclaredAnnotations(Method.java:267)
E/AndroidRuntime(794):  at com.fasterxml.jackson.databind.introspect.AnnotatedClass._addMixUnders(AnnotatedClass.java:999)
....

我有一个 /libs 目录,它有 joda-time-2.1.jar。我错过了一些明显的东西吗?


我应该更仔细地查看错误堆栈 - 特别是以下行: java.lang.NoClassDefFoundError: org/joda/convert/ToString

这是来自 jar joda-convert,而不是 joda-time,并且 joda-convert jar 文件不在我的 libs 目录中。

注意:似乎不需要显式导出jar

【问题讨论】:

  • 您是否将jar文件导出到您的应用程序..???
  • 是的,我试过没有任何成功 - 完全相同的错误。 (另外stackoverflow.com/questions/10437438/… 似乎表明没有必要)。如果它有效,我会很乐意进行导出。

标签: android jodatime


【解决方案1】:

您需要将 joda-convert.jar 添加到您的 libs 文件夹中。从http://sourceforge.net/projects/joda-convert/files/joda-convert/下载jar

【讨论】:

  • 谢谢 - 我已经按照这些思路添加了一个答案,但它被删除了。我会接受你的回答,因为有人可能会得到信任。
  • 谁能解释一下为什么你必须这样做才能在 Android 上使用 Joda Time,但在纯 Java 中使用它不需要这样做?
【解决方案2】:

您应该使用joda-time-android。 这是适用于android的jodatime库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2021-03-18
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多