为了账号安全,请及时绑定邮箱和手机立即绑定

调用 Calendar.getInstance() 时,给出 StackOverflowError

调用 Calendar.getInstance() 时,给出 StackOverflowError

冉冉说 2021-12-01 15:47:54
所以我已经在这里呆了 4 个小时。我在同一个模拟器上的 3 台不同计算机上构建了这个项目。其他计算机运行此代码完全没有错误。在与提示 Calendar.getInstance() 调用的 UI 交互后不久,这台计算机不断地抛出此 StackOverflowError。这是创建此问题的代码。仅在我的设备上调用此方法会产生上述错误。public static int getDays(Time t1, Time t2){    Calendar cal1 = new GregorianCalendar(t1.getYear().getYear(), t1.getMonth().getMonthNumber(), t1.getDay().getDayInMonthNumber());    Calendar cal2 = new GregorianCalendar(t2.getYear().getYear(), t2.getMonth().getMonthNumber(), t2.getDay().getDayInMonthNumber());    long startLong = cal1.getTimeInMillis();    long endLong = cal2.getTimeInMillis();    long timeBetween = endLong - startLong;    // System.out.println(endLong + " - " + startLong + " = " + timeBetween + " (" + timeBetween/86400000 + " days)");    return (int)(timeBetween / 86400000);}
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

正如在您的堆栈跟踪中所见,您SubActivity正在实例化 anActivity并且Activity正在实例化 a SubActivity。你需要修复这个无限乒乓球。

部分Activity初始化是调用云6个更深层次的调用链(以Calendar等),并最终就足以使栈溢出。


查看完整回答
反对 回复 2021-12-01
  • 1 回答
  • 0 关注
  • 280 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信