Çözmenin kolay olduğunu düşündüğüm bir problemde yaklaşık 2 saat kaldım. Android platformu için özel bir tarih çağrısı seçicisi yapıyorum ve standart java.util.Calendar ve java.util.Date sınıflarının yavaşlığı nedeniyle JODA kütüphanesini kullanmaya karar verdim.Android java.lang.NoClassDefFoundError JODA kütüphanelerini kullanarak
Maalesef 'JAR' referansları ile ilgili herhangi bir deneyimim yok (beni affet ... COM ve .NET meclislerinden geliyorum =) ...), ama internette bazı ipuçları öğreniyorum ama belli ki olmak yanlış ... Bunlar benim projede kütüphaneyi kullanmaya aldı adımlar şunlardır:
- 2,1
- benim proje klasörüne
- Add 'içine 'lib' klasör oluşturun son JODA kütüphaneye indirin joda-time-2.1.jar '' lib 'klasörüne.
- 'joda-time-2.1.jar' kitaplığını derleme yoluna ekleyin.
- Add 'joda zamanlı 2.1-javadoc.jar' 'joda zamanlı 2.1-sources.jar' 'java kaynak eklentilerinin' ve 'javadoc konum olarak yukarıdaki kütüphaneleri Set 'lib' klasörüne
- ve 'joda-time-2.1 başvurulan kütüphane için.
- Yeni kitaplığı koduma (ehm ehm 'intelli-sense' ve derleyici herhangi bir hata veya uyarı atmıyor) kullanın.
- Hata ayıklamayı gerçek veya sanal aygıtta başlatın.
DateTime newDate = new DateTime(2012, 5, 3, 12, 0, 0);
Ve aşağıdaki yığın izleme verir:: o aşağıdaki satırı (BTW joda kullanan ilk bir) söz konusu olduğunda
, ayıklama durur
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
Birisi yardımcı olabilir ben mi? Şimdiden teşekkürler!
DateTime için kullandığınız içe aktarma ifadesi nedir? – Sam
Projemi farklı bir bilgisayarda açarken aynı sorunla karşılaşıyorum, Eclipse kütüphaneye karşı derleme yapıyor ancak JodaTime kitaplığı DateTime kurucusunun ilk çağrısında çöküyor. – Luke