猿问

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

所以我已经在这里呆了 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);

}


冉冉说
浏览 294回答 1
1回答

慕雪6442864

正如在您的堆栈跟踪中所见,您SubActivity正在实例化 anActivity并且Activity正在实例化 a SubActivity。你需要修复这个无限乒乓球。部分Activity初始化是调用云6个更深层次的调用链(以Calendar等),并最终就足以使栈溢出。
随时随地看视频慕课网APP

相关分类

Java
我要回答