所以我已经在这里呆了 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
等),并最终就足以使栈溢出。
添加回答
举报
0/150
提交
取消