我被困在約2小時的問題上,我認爲這很容易解決。 我正在爲android平臺構建自定義日期時間選擇器,並且由於標準java.util.Calendar和java.util.Date類的緩慢性,我決定使用JODA庫。 (原諒我...我來自COM和.NET程序集世界=)...),但我在互聯網上學習一些技巧,但顯然他們似乎是錯誤的... 這是我花了使用該庫在我的項目的步驟:使用JODA庫的Android java.lang.NoClassDefFoundError
- 下載最新的JODA庫2.1
- 創建「LIB」文件夾到我的項目文件夾
- 增加' joda-time-2.1.jar'到'lib'文件夾。
- 將'joda-time-2.1.jar'庫添加到構建路徑。
- 將'joda-time-2.1-javadoc.jar'和'joda-time-2.1-sources.jar'添加到'lib'文件夾中
- 將上述庫設置爲'java source attachchements'和'javadoc location '爲joda-time-2.1引用的庫。
- 在我的代碼中使用新庫(ehm ehm'intelli-sense'和編譯器不會引發任何錯誤或警告)
- 在真實或虛擬設備上啓動調試。
當涉及到以下行(使用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
有人能夠幫助我? 在此先感謝!
什麼是您用於DateTime的導入語句? – Sam
我在另一臺計算機上打開我的項目時遇到了同樣的問題,Eclipse針對庫進行了編譯,但它在第一次調用JodaTime庫DateTime構造函數時崩潰。 – Luke