Sono bloccato da circa 2 ore su un problema che ho pensato fosse facile da risolvere. Sto costruendo un selettore data-ora personalizzato per la piattaforma Android e, a causa della lentezza delle classi standard java.util.Calendar e java.util.Date, ho deciso di utilizzare la libreria JODA.Android java.lang.NoClassDefFoundError che utilizza librerie JODA
Purtroppo non ho esperienza con i riferimenti "JAR" (perdonami ... vengo da COM e .NET assembly world =) ...), ma apprendo alcuni suggerimenti su Internet ma ovviamente sembrano sbagliarmi ... Questi sono i passi che ho preso per utilizzare la libreria nel mio progetto:
- scaricare l'ultima biblioteca JODA 2.1
- creare la cartella 'lib' nella mia cartella del progetto
- Add ' joda-time-2.1.jar 'alla cartella' lib '.
- Aggiungere la libreria 'joda-time-2.1.jar' al percorso di generazione.
- Add 'Joda-tempo-2.1-javadoc.jar' e 'Joda-tempo-2.1-sources.jar' a cartella 'lib'
- Impostare le librerie di cui sopra come 'Allegati sorgente Java' e 'posizione javadoc 'per la libreria di riferimento 2.1 joda-time.
- Utilizzare la nuova libreria nel mio codice (ehm ehm 'intelli-sense' e il compilatore non genera alcun errore o avviso)
- Avvia il debug su dispositivo reale o virtuale.
Quando si tratta della seguente riga (il primo che utilizza JODA BTW), il debug si ferma:
DateTime newDate = new DateTime(2012, 5, 3, 12, 0, 0);
E restituisce il seguente stack trace:
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
qualcuno può aiutare me? Grazie in anticipo!
Qual è la dichiarazione di importazione che usi per DateTime? – Sam
Ho avuto lo stesso problema dopo aver aperto il mio progetto su un altro computer, Eclipse viene compilato rispetto alla libreria ok ma si blocca alla prima chiamata al costruttore DateTime della libreria JodaTime. – Luke