Withtaker
Withtaker

Reputation: 1884

android calendar crashes where iOS is working

My app crashes with NullPointerException, since the android calendar does not return a Collection of calendar names from the dc.getCalendars(); function from the CN1 Calendar Lib, even though it is working to this point on the iOS iphone version.

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

Its throwing me an NullPointerException for the 3rd line because calName is a null object and I cant use size() on it. Again, the code IS working on iPhone, so it seems there is a problem with android.

Thanks in advance.

Upvotes: 1

Views: 67

Answers (1)

steve hannah
steve hannah

Reputation: 4716

The javadocs for that method say that getCalendars() will return null if you don't have permission

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

You'll need to add the permissions using the android.xpermissions build hint.

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

And it looks like you also need to set android.targetSDKVersion=21

See this SO thread for a related issue.

Upvotes: 1

Related Questions