【问题标题】:Codename One: Getting events from Calendar throws ArrayIndexOutOfBoundException代号一:从日历获取事件抛出 ArrayIndexOutOfBoundException
【发布时间】:2017-03-28 13:19:51
【问题描述】:

我正在尝试使用以下代码从用户设备日历中获取事件:

    Date from = new Date();
    java.util.Calendar c = java.util.Calendar.getInstance();
    c.add(java.util.Calendar.MONTH, 1);
    Date to = c.getTime();
    String calendarId = dc.openCalendar(calenderName, false);

    Collection <EventInfo> events = dc.getEvents(calendarId, from, to);

最后一行是抛出异常的地方,我完全不知道为什么。

我无法传递任何异常消息,因为无法在 ide 或模拟器中调试 CN1Lib,这使得在这里很难找到错误。

当遇到异常时,它只是告诉我:

Error
An internal application error occurred: java.lang.ArrayIndexOutOfBoundsException: null

提前致谢

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    DeviceCalendar 在模拟器中不受支持,因此它总是会抛出异常。

    您只能在设备上获取事件并在设备上调试此代码 sn-p,将其包装在 try-catch 中并使用 Log.sendLog() 获取您使用代号 One 的电子邮件中的 StackTrace

    完成后记得删除Log.sendLog(),否则,您可能会收到error log 电子邮件的垃圾邮件。

    try {
        //DeviceCalendar Code snippet here
    } catch (Exception ex) {
       Log.e(ex);
       Log.sendLog();
    }
    

    【讨论】:

    • 不幸的是,我只是一个穷学生,只能买得起基本的代号 One,所以我无法访问 Pro 专用功能 sendLog()。有没有其他方法可以找出问题所在? DeviceCalendar 的使用对我来说似乎微不足道,所以我很好奇我的代码可能出了什么问题。
    • 您可以连接您的设备并在 logcat 或 Android Studio 中查看日志。您还可以安装一些应用程序来查看日志。 stackoverflow.com/questions/3707880/…
    猜你喜欢
    • 2011-08-18
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多