web-dev-qa-db-ja.com

Scalaを使用したJoda Timeのクラス破損エラー

Joda TimeリポジトリをSBTに追加しています

libraryDependencies ++= Seq(
  "joda-time"         % "joda-time"           % "2.1"
)

それから私はこのようにそれを陽気に使用します:

 val ymd = org.joda.time.format.DateTimeFormat.forPattern("yyyyMMdd")
  ymd.parseDateTime("20121212")

しかし、SBTでプロジェクトをコンパイルすると、厄介な問題が発生します。

[warn] Class org.joda.convert.FromString not found - continuing with a stub.
[warn] Caught: Java.lang.NullPointerException while parsing annotations in /home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)
[error] error while loading DateTime, class file '/home/jack/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar(org/joda/time/DateTime.class)' is broken
[error] (class Java.lang.RuntimeException/bad constant pool tag 10 at byte 42)

Joda-timeの2.0バージョンを試しましたが、同じエラーが発生します。

90
Jack

この依存関係を追加します。

"org.joda"% "joda-convert"% "1.8.1"

これは、joda-timeのオプションの依存関係です。 scalaコンパイラがjoda-time jarでの作業を受け入れるために、自分のプロジェクトに追加する必要がありました。

あなたの問題は同じようです。

バージョンは編集時のものであり、最新バージョンを見つけることができます こちら

175
David Pierre

私は同様の問題に遭遇していました:

[warn] Class net.jcip.annotations.NotThreadSafe not found - continuing with a stub.
[warn] Caught: Java.lang.NullPointerException while parsing annotations in ~/.ivy2-p2/cache/org.opensaml/xmltooling/jars/xmltooling-1.3.4.jar(org/opensaml/xml/util/IDIndex.class)
[error] error while loading AttributeMap, class file '~/.ivy2-p2/cache/org.opensaml/xmltooling/jars/xmltooling-1.3.4.jar(org/opensaml/xml/util/AttributeMap.class)' is broken
[error] (class Java.lang.RuntimeException/bad constant pool index: 0 at pos: 12058)

依存関係を明示的に追加するjcip-annotations-1.0.jarは問題を解決しました。

1
mn2013