5

簡単に解決できると思っていた問題で約2時間立ち往生しています。私はAndroidプラットフォーム用のカスタム日時ピッカーを構築していますが、標準のjava.util.Calendarクラスとjava.util.Dateクラスの速度が遅いため、JODAライブラリを使用することにしました。

残念ながら、私は「JAR」参照の経験がありません(許してください...私はCOMおよび.NETアセンブリの世界から来ています=)...)、しかし私はインターネットでいくつかのヒントを学びますが、明らかにそれらは間違っているようです。 。プロジェクトでライブラリを使用するために行った手順は次のとおりです。

  1. 最新のJODAライブラリ2.1をダウンロードする
  2. 'lib'フォルダーをプロジェクトフォルダーに作成します
  3. 'joda-time-2.1.jar'を'lib'フォルダーに追加します。
  4. 'joda-time-2.1.jar'ライブラリをビルドパスに追加します。
  5. 'joda-time-2.1-javadoc.jar'および'joda-time-2.1-sources.jar'を'lib'フォルダーに追加します
  6. 上記のライブラリを、joda-time-2.1参照ライブラリの「javasourceattachements」および「javadoclocation」として設定します。
  7. 新しいライブラリをコードに使用します(ehm ehm'intelli-sense'およびコンパイラはエラーや警告をスローしません)
  8. 実デバイスまたは仮想デバイスでデバッグを開始します。

次の行(JODA BTWを使用する最初の行)になると、デバッグは停止します。

DateTime newDate = new DateTime(2012, 5, 3, 12, 0, 0);

そして、次のスタックトレースを返します。

05-03 19:09:14.349: E/AndroidRuntime(4071): java.lang.NoClassDefFoundError: org.joda.time.DateTime
05-03 19:09:14.349: E/AndroidRuntime(4071):     at it.paganel.droidMessageExport.Control.TimePickerControl.SetTimePart(TimePickerControl.java:83)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at it.paganel.droidMessageExport.Control.TimePickerControl.onClick(TimePickerControl.java:116)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at android.view.View.performClick(View.java:2454)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at android.view.View$PerformClick.run(View.java:9030)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at android.os.Handler.handleCallback(Handler.java:587)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at android.os.Looper.loop(Looper.java:123)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at android.app.ActivityThread.main(ActivityThread.java:4641)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at java.lang.reflect.Method.invokeNative(Native Method)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at java.lang.reflect.Method.invoke(Method.java:521)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:870)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at dalvik.system.NativeStart.main(Native Method)
05-03 19:09:14.349: E/AndroidRuntime(4071): Caused by: java.lang.ClassNotFoundException: org.joda.time.DateTime in loader dalvik.system.PathClassLoader[/data/app/it.paganel.droidMessageExport-2.apk]
05-03 19:09:14.349: E/AndroidRuntime(4071):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
05-03 19:09:14.349: E/AndroidRuntime(4071):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
05-03 19:09:14.349: E/AndroidRuntime(4071):     ... 13 more

誰かが私を助けることができますか?前もって感謝します!

4

2 に答える 2

7

libフォルダーの名前をlibsに変更します。ADT Toolsの時点で、17個の外部jarは、このフォルダー内にある場合にのみapkにパッケージ化されます。または、「ビルドパスの構成..」->「注文とエクスポート」に移動して、jarの横にあるチェックボックスをクリックすることもできます。

于 2012-05-03T19:18:30.167 に答える
1

解決策を探しているかもしれない他の人のために、私がちょうど発見した別の考えられる原因があります:プロジェクト>プロパティ>Javaビルドパス>ライブラリを開き、JodaTimeがAndroid依存関係またはAndroidプライベートライブラリの下にあるかどうかを確認します。次に、[注文とエクスポート]タブで対応するオプションがオンになっていることを確認します。それを機能させるには、 Androidプライベートライブラリ(JodaTimeがリストされている場所)を確認する必要がありました。

これは同様の問題にも当てはまると思いますが、必ずしもJodaTimeに関連しているわけではありません。

于 2013-07-05T14:46:50.480 に答える