{ "id": "145557", "key": "AC-889", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "12217", "key": "AC", "name": "Appcelerator - INBOX", "projectCategory": { "id": "10000", "description": "", "name": "Customer Service" } }, "resolution": { "id": "11", "description": "Is not a bug in our product", "name": "Not Our Bug" }, "resolutiondate": "2015-09-29T03:55:44.000+0000", "created": "2015-03-09T14:18:08.000+0000", "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "shossain", "key": "shossain", "displayName": "Shak Hossain", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2016-03-08T07:37:11.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "14548", "name": "Titanium SDK & CLI", "description": "Please enter tickets related to the MobileSDK here." } ], "description": "I get an NullPointerException When I open the date picker. It seems that it has something to do with the calendarView. So I've tried setting calendarViewShown to false. But that doesn't seem to do anything. It works on the simulator but not on the actual device. This is my code: \r\n\r\n var datePicker = Ti.UI.createPicker(\r\n {\r\n type: Ti.UI.PICKER_TYPE_DATE\r\n , minDate: args.minDate\r\n , maxDate: args.maxDate\r\n , value: value.toDate()\r\n , calendarViewShown: false\r\n } );\r\n\r\n datePicker.setCalendarViewShown( false );\r\n\r\n datePicker.showDatePickerDialog(\r\n {\r\n value: value.toDate()\r\n , calendarViewShown: false\r\n , callback: function( e )\r\n {\r\n if ( e.cancel )\r\n {\r\n // Cancel event, do nothing\r\n }\r\n else\r\n {\r\n if ( e.value )\r\n {\r\n $.setValue(\r\n {\r\n id: e.value\r\n , value: moment( e.value ).format( \"DD-MM-YYYY\" )\r\n } );\r\n }\r\n }\r\n }\r\n } );\r\n\r\nThis is the stacktrace: \r\n[ERROR] TiApplication: (KrollRuntimeThread) [8780,14758] Sending event: exception on thread: KrollRuntimeThread msg:java.lang.NullPointerException; Titanium 3.5.1,2015/03/05 10:08,96875c9\r\n[ERROR] TiApplication: java.lang.NullPointerException\r\n[ERROR] TiApplication: \tat android.widget.CalendarView.onScroll(CalendarView.java:1216)\r\n[ERROR] TiApplication: \tat android.widget.CalendarView.access$900(CalendarView.java:76)\r\n[ERROR] TiApplication: \tat android.widget.CalendarView$2.onScroll(CalendarView.java:1077)\r\n[ERROR] TiApplication: \tat android.widget.AbsListView.invokeOnItemScrollListener(AbsListView.java:1463)\r\n[ERROR] TiApplication: \tat android.widget.ListView.layoutChildren(ListView.java:1745)\r\n[ERROR] TiApplication: \tat android.widget.AbsListView.onLayout(AbsListView.java:2149)\r\n[ERROR] TiApplication: \tat android.view.View.layout(View.java:15125)\r\n[ERROR] TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4862)\r\n[ERROR] TiApplication: \tat android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888)\r\n[ERROR] TiApplication: \tat android.widget.LinearLayout.layoutVertical(LinearLayout.java:1742)\r\n[ERROR] TiApplication: \tat android.widget.LinearLayout.onLayout(LinearLayout.java:1651)\r\n[ERROR] TiApplication: \tat android.view.View.layout(View.java:15125)\r\n[ERROR] TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4862)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:450)\r\n[ERROR] TiApplication: \tat android.view.View.layout(View.java:15125)\r\n[ERROR] TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4862)\r\n[ERROR] TiApplication: \tat android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888)\r\n[ERROR] TiApplication: \tat android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1877)\r\n[ERROR] TiApplication: \tat android.widget.LinearLayout.onLayout(LinearLayout.java:1653)\r\n[ERROR] TiApplication: \tat android.view.View.layout(View.java:15125)\r\n[ERROR] TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4862)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:450)\r\n[ERROR] TiApplication: \tat android.view.View.layout(View.java:15125)\r\n[ERROR] TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4862)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:450)\r\n[ERROR] TiApplication: \tat android.view.View.layout(View.java:15125)\r\n[ERROR] TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4862)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:450)\r\n[ERROR] TiApplication: \tat android.view.View.layout(View.java:15125)\r\n[ERROR] TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4862)\r\n[ERROR] TiApplication: \tat android.widget.LinearLayout.setChildFrame(LinearLayout.java:1888)\r\n[ERROR] TiApplication: \tat android.widget.LinearLayout.layoutVertical(LinearLayout.java:1742)\r\n[ERROR] TiApplication: \tat android.widget.LinearLayout.onLayout(LinearLayout.java:1651)\r\n[ERROR] TiApplication: \tat android.view.View.layout(View.java:15125)\r\n[ERROR] TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4862)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:450)\r\n[ERROR] TiApplication: \tat android.view.View.layout(View.java:15125)\r\n[ERROR] TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4862)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:515)\r\n[ERROR] TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:450)\r\n", "attachment": [ { "id": "54419", "filename": "Screen Shot 2015-03-12 at 10.17.05 AM.png", "author": { "name": "janvdberg", "key": "janvdberg", "displayName": "Jan van den Berg", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-03-12T09:21:54.000+0000", "size": 93828, "mimeType": "image/png" } ], "flagged": false, "summary": "NullPointerException on Ti.UI.Picker.showDatePickerDialog()", "creator": { "name": "janvdberg", "key": "janvdberg", "displayName": "Jan van den Berg", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "janvdberg", "key": "janvdberg", "displayName": "Jan van den Berg", "active": true, "timeZone": "Europe/Berlin" }, "environment": "SDK 3.5.0.GA, Alloy 1.5.1, Hardware: Archos 70b Android tablet.", "comment": { "comments": [ { "id": "345542", "author": { "name": "janvdberg", "key": "janvdberg", "displayName": "Jan van den Berg", "active": true, "timeZone": "Europe/Berlin" }, "body": "Apparently it's a known Android bug, to do with setting maxdate. The workaround provided by people is disabling the calendarview. But the designated titanium property is not doing anything for me. \r\n\r\nhttp://stackoverflow.com/questions/26225714/nullpointerexception-at-android-widget-calendarview-onscroll", "updateAuthor": { "name": "janvdberg", "key": "janvdberg", "displayName": "Jan van den Berg", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-03-10T12:41:19.000+0000", "updated": "2015-03-10T12:41:19.000+0000" }, { "id": "345666", "author": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "body": "Hi,\r\n\r\nI can't reproduce your problem in my device. \r\n\r\nWould you please try to create a new classic project with following codes, see if this cause problem in your test device.\r\n{code:title=app.js}\r\nTi.UI.backgroundColor = 'white';\r\n\r\nvar picker = Ti.UI.createPicker({\r\n\ttype:Ti.UI.PICKER_TYPE_DATE,\r\n \tminDate:new Date(2009,0,1),\r\n \tmaxDate:new Date(2014,11,31),\r\n \tvalue:new Date(2014,3,12),\r\n \tcalendarViewShown: false\r\n});\r\n\r\npicker.showDatePickerDialog({\r\n\tvalue: new Date(2010,8,1),\r\n \tcallback: function(e) {\r\n \t\tif (e.cancel) {\r\n \t\tTi.API.info('User canceled dialog');\r\n \t} else {\r\n \t\tTi.API.info('User selected date: ' + e.value);\r\n \t}\r\n \t}\r\n});\r\n{code}", "updateAuthor": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "created": "2015-03-11T06:03:31.000+0000", "updated": "2015-03-11T06:03:31.000+0000" }, { "id": "345810", "author": { "name": "janvdberg", "key": "janvdberg", "displayName": "Jan van den Berg", "active": true, "timeZone": "Europe/Berlin" }, "body": "Still seeing a calendar view. ", "updateAuthor": { "name": "janvdberg", "key": "janvdberg", "displayName": "Jan van den Berg", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-03-12T09:21:54.000+0000", "updated": "2015-03-12T09:21:54.000+0000" }, { "id": "345811", "author": { "name": "janvdberg", "key": "janvdberg", "displayName": "Jan van den Berg", "active": true, "timeZone": "Europe/Berlin" }, "body": "I don't get the NullPointerException. But that's because the maxdate is more than x days separated from the min data. \r\nAnd that's an error in Android, not Titanium. \r\n\r\nBut I my problem is that calendarViewShown: false doesn't work. I need this to work to bypass this Android bug. And I've tested your code on a classic project and still I see a calendar view. (See screenshot)", "updateAuthor": { "name": "janvdberg", "key": "janvdberg", "displayName": "Jan van den Berg", "active": true, "timeZone": "Europe/Berlin" }, "created": "2015-03-12T09:22:00.000+0000", "updated": "2015-03-12T09:22:00.000+0000" }, { "id": "361233", "author": { "name": "hmrida", "key": "hmrida", "displayName": "Harish Mridha", "active": true, "timeZone": "Asia/Dhaka" }, "body": "Hi ,\r\nI tested the issue you reported. It looks like the feature \"*Ti.UI.Picker.showDatePickerDialog()*\" in Appcelerator Studio is working fine for me there is no NullPointerException .\r\n\r\n\"*calendarViewShown: false*\" is not working on android 5.1 , but it works fine for android 4.4.2 .This is not Appcelerator bug . This is a native Android issue .\r\nI tested this using the studio build: 4.1.1.201507141126 , TiSDK 4.1.0 GA and Appcelerator Command-Line Interface, version 4.1.2.\r\n\r\nThanks", "updateAuthor": { "name": "shossain", "key": "shossain", "displayName": "Shak Hossain", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-08-26T08:49:32.000+0000", "updated": "2015-09-29T03:55:37.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }