我被困在一个我认为很容易解决的问题上大约 2 个小时。我正在为 android 平台构建一个自定义日期时间选择器,并且由于标准 java.util.Calendar 和 java.util.Date 类的速度很慢,我决定使用 JODA 库。
不幸的是,我没有使用“JAR”引用的经验(请原谅我......我来自 COM 和 .NET 程序集世界 =)......),但我在互联网上学习了一些技巧,但显然它们似乎是错误的...... . 这些是我在项目中使用该库所采取的步骤:
- 下载最新的 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”文件夹
- 将上述库设置为 joda-time-2.1 引用库的“java 源附件”和“javadoc 位置”。
- 在我的代码中使用新库(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
有人可以帮助我吗?提前致谢!