19

私は時間を使用するアプリを構築しています。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;
4

1 に答える 1

19

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

  1. プロパティ -> Java ビルド パス -> 注文とエクスポート

  2. をオンにして、[ OKjoda-time-*-*.jar ] をクリックします。あなたは終わった。


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

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

于 2013-03-28T06:06:36.130 に答える