web-dev-qa-db-ja.com

Joda Timeを追加する

時間を使用するアプリを作成しています。私は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    
_

これらは私が従ったステップです:

  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;
_
19
Chad Bingham

これはAndroidプロジェクトなので、Joda jarファイルを参照するだけでは実行できません。このjarファイルをapkと一緒にバンドルする必要があります。

  1. プロパティ-> Java Build Path-> Order&Export

  2. joda-time-*-*.jarをクリックし、Okをクリックします。できました。


説明: jarのみを参照すると、Eclipse(または他のIDE)でのコンパイルの問題のみが解決されますが、apkの場合「joda-time」jarファイルは「apk」とともにエクスポート/バンドルされません。それがNoClassDefFoundErrorをスローする理由です。

ただし、Order&Exportでjoda-time jarをチェックすると、jarが「apk」の内部/一緒にバンドルされていることも確認されます「作成されるたびに。

19
SudoRahul