我的应用程序因 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线程。