这是我第一次使用 jodatime,我遇到了一个我不知道如何修复的 stackoverflow 错误。我正在创建一个 android 应用程序,该应用程序需要能够显示从创建 sqlite 记录到今天之间的天数。据我所知,除 jodatime 外,一切正常。构建项目时出现此错误
[2010-08-10 02:08:50 - Grow Journal Beta] 处理 org/joda/time/DateTimeUtils.class... [2010-08-10 02:08:50 - Grow Journal Beta] 处理 org/joda/time/DateTimeZone$1.class... [2010-08-10 02:08:50 - Grow Journal Beta] 警告:忽略不带有关联 EnclosureMethod 属性的匿名内部类的 InnerClasses 属性。(此类可能是由损坏的编译器生成的。) [2010-08-10 02:08:50 - Grow Journal Beta] 处理 org/joda/time/DateTimeZone$Stub.class...
这是日志:
08-13 22:12:11.823:错误/AndroidRuntime(6537):未捕获的处理程序:线程主因未捕获的异常而退出 08-13 22:12:11.893: 错误/AndroidRuntime(6537): java.lang.StackOverflowError 08-13 22:12:11.893: 错误/AndroidRuntime(6537): 在 java.util.Hashtable.get(Hashtable.java:274) 08-13 22:12:11.893: 错误/AndroidRuntime(6537): 在 java.util.Properties.getProperty(Properties.java:177) 08-13 22:12:11.893: 错误/AndroidRuntime(6537): 在 java.lang.System.getProperty(System.java:440) 08-13 22:12:11.893: 错误/AndroidRuntime(6537): 在 java.lang.System.getProperty(System.java:412) 08-13 22:12:11.893: 错误/AndroidRuntime(6537): 在 org.joda.time.DateTimeZone.getDefault(DateTimeZone.java:132) 08-13 22:12:11.893: 错误/AndroidRuntime(6537): 在 org.joda.time.DateTimeZone.forID(DateTimeZone.java:190) 08-13 22:12:11.893: 错误/AndroidRuntime(6537): 在 org.joda.time.DateTimeZone.getDefault(DateTimeZone.java:132)
环顾四周后,我想我只需要重新编译我自己的 jodatime 二进制文件。我一直在使用 eclipse,我创建了一个新项目,并导入了 jodatime 源。当我尝试编译时,我在控制台中得到了这个:
Usage: java org.joda.time.tz.ZoneInfoCompiler <options> <source files>
可能的选项包括: -src 指定读取源文件的位置 -dst 指定写入生成文件的位置
不太确定从这里去哪里。任何帮助将不胜感激。谢谢你的时间。
StackTrace 来自溢出:
线程 [main](暂停(StackOverflowError 异常)) DateTimeZone.getDefault() 行:147 ISOChronology.getInstance() 行:86 DateTimeUtils.getChronology(Chronology) 行:231 DateConverter(AbstractConverter).getChronology(Object, Chronology) 行:82 DateTime(BaseDateTime).(Object, Chronology) 行:170 日期时间。(对象)行:168 PlantsCursorAdapter.newView(Context, Cursor, ViewGroup) 行:71 PlantsCursorAdapter(CursorAdapter).getView(int, View, ViewGroup) 行:182 ListView(AbsListView).obtainView(int) 行:1274 ListView.measureHeightOfChildren(int, int, int, int, int) 行:1147 ListView.onMeasure(int, int) 行:1060 ListView(View).measure(int, int) 行:7966 TableLayout(ViewGroup).measureChildWithMargins(View, int, int, int, int) 行:3077 TableLayout(LinearLayout).measureChildBeforeLayout(View, int, int, int, int, int) 行:888 TableLayout.measureChildBeforeLayout(View, int, int, int, int, int) 行:453 TableLayout(LinearLayout).measureVertical(int, int) 行:350 TableLayout.measureVertical(int, int) 行:465 TableLayout.onMeasure(int, int) 行:428 TableLayout(View).measure(int, int) 行:7966 FrameLayout(ViewGroup).measureChildWithMargins(View, int, int, int, int) 行:3077 FrameLayout.onMeasure(int, int) 行:245 FrameLayout(View).measure(int, int) 行:7966 LinearLayout.measureVertical(int, int) 行:464 LinearLayout.onMeasure(int, int) 行:278 LinearLayout(View).measure(int, int) 行:7966 PhoneWindow$DecorView(ViewGroup).measureChildWithMargins(View, int, int, int, int) 行:3077 PhoneWindow$DecorView(FrameLayout).onMeasure(int, int) 行:245 PhoneWindow$DecorView(View).measure(int, int) 行:7966 ViewRoot.performTraversals() 行:767 ViewRoot.handleMessage(Message) 行:1650 ViewRoot(Handler).dispatchMessage(Message) 行:99 Looper.loop() 行:123 ActivityThread.main(String[]) 行:4595 Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) 行:不可用 [本机方法] Method.invoke(Object, Object...) 行:521 ZygoteInit$MethodAndArgsCaller.run() 行:860 ZygoteInit.main(String[]) 行:618 NativeStart.main(String[]) 行:不可用 [本机方法]
DateTimeZone.class 源在这里