安卓日历在iOS工作的地方崩溃



我的应用程序因 NullPointerException 而崩溃,因为 android 日历不会从 dc.getCalendars(); 函数返回来自 CN1 Calendar Lib 的日历名称集合,即使它目前在 iOS iPhone 版本上工作。

Device Calendar dc = DeviceCalendar.getInstance();
Collection<String> calNames = dc.getCalendars();
String [] nameArray = calName.toArray(new String[calName.size()]);

它为第三行抛出了一个 NullPointerException,因为 calName 是一个空对象,我不能在上面使用 size()。同样,代码在iPhone上运行,因此Android似乎存在问题。

提前谢谢。

该方法的javadocs说,如果你没有权限,getCalendars()会返回null

https://github.com/sidiabale/codenameone-calendar/blob/master/CN1Calendar/src/com/codename1/calendar/DeviceCalendar.java#L91

您需要使用android.xpermissions生成提示添加权限。

codename1.arg.android.xpermissions=<uses-permission android:name="android.permission.READ_CALENDAR"/> <uses-permission android:name="android.permission.WRITE_CALENDAR"/>

看起来您还需要设置android.targetSDKVersion=21

有关相关问题,请参阅此SO线程。