iOS日历崩溃的地方崩溃了

时间:2017-03-29 13:03:13

标签: codenameone

我的应用程序因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()。同样,代码IS在iPhone上工作,所以似乎android有问题。

提前致谢。

1 个答案:

答案 0 :(得分:1)

该方法的javadoc表示,如果您没有权限,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

有关相关问题,请参阅this SO thread