{ "id": "170244", "key": "TIMOB-25503", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "20115", "name": "Release 7.3.0", "archived": false, "released": true, "releaseDate": "2018-08-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2018-05-18T08:04:25.000+0000", "created": "2017-11-07T13:59:02.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "bug", "listView" ], "versions": [], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2018-07-09T22:14:25.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [], "description": "As title says, I am trying to create an ItemTemplate which has a CardView inside it, but this causes the app to crash. This is the error showing in Appcelerator's console:\r\n\r\n{code}[ERROR] : TiApplication: (main) [49049,49384] Sending event: exception on thread: main msg:java.lang.IllegalArgumentException: Cannot add a null child view to a ViewGroup; Titanium 6.3.0,2017/10/31 18:13,undefined\r\n[ERROR] : TiApplication: java.lang.IllegalArgumentException: Cannot add a null child view to a ViewGroup\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.addView(ViewGroup.java:4250)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.addView(ViewGroup.java:4230)\r\n[ERROR] : TiApplication: \tat ti.modules.titanium.ui.widget.listview.ListSectionProxy.generateChildContentViews(ListSectionProxy.java:731)\r\n[ERROR] : TiApplication: \tat ti.modules.titanium.ui.widget.listview.ListSectionProxy.generateCellContent(ListSectionProxy.java:703)\r\n[ERROR] : TiApplication: \tat ti.modules.titanium.ui.widget.listview.TiListView$TiBaseAdapter.getView(TiListView.java:284)\r\n[ERROR] : TiApplication: \tat android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)\r\n[ERROR] : TiApplication: \tat android.widget.AbsListView.obtainView(AbsListView.java:2363)\r\n[ERROR] : TiApplication: \tat android.widget.ListView.makeAndAddView(ListView.java:1970)\r\n[ERROR] : TiApplication: \tat android.widget.ListView.fillDown(ListView.java:704)\r\n[ERROR] : TiApplication: \tat android.widget.ListView.fillSpecific(ListView.java:1412)\r\n[ERROR] : TiApplication: \tat android.widget.ListView.layoutChildren(ListView.java:1708)\r\n[ERROR] : TiApplication: \tat android.widget.AbsListView.onLayout(AbsListView.java:2162)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:17637)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:5575)\r\n[ERROR] : TiApplication: \tat android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:610)\r\n[ERROR] : TiApplication: \tat ti.modules.titanium.ui.widget.listview.TiListView$ListViewWrapper.onLayout(TiListView.java:153)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:17637)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:5575)\r\n[ERROR] : TiApplication: \tat org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:862)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:17637)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:5575)\r\n[ERROR] : TiApplication: \tat org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:862)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:17637)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:5575)\r\n[ERROR] : TiApplication: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)\r\n[ERROR] : TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:261)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:17637)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:5575)\r\n[ERROR] : TiApplication: \tat android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:443)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:17637)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:5575)\r\n[ERROR] : TiApplication: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)\r\n[ERROR] : TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:261)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:17637)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:5575)\r\n[ERROR] : TiApplication: \tat android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)\r\n[ERROR] : TiApplication: \tat android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)\r\n[ERROR] : TiApplication: \tat android.widget.LinearLayout.onLayout(LinearLayout.java:1494)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:17637)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:5575)\r\n[ERROR] : TiApplication: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)\r\n[ERROR] : TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:261)\r\n[ERROR] : TiApplication: \tat com.android.internal.policy.DecorView.onLayout(DecorView.java:726)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:17637)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:5575)\r\n[ERROR] : TiApplication: \tat android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2346)\r\n[ERROR] : TiApplication: \tat android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2068)\r\n[ERROR] : TiApplication: \tat android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)\r\n[ERROR] : TiApplication: \tat android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6337)\r\n[ERROR] : TiApplication: \tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)\r\n[ERROR] : TiApplication: \tat android.view.Choreographer.doCallbacks(Choreographer.java:686)\r\n[ERROR] : TiApplication: \tat android.view.Choreographer.doFrame(Choreographer.java:621)\r\n[ERROR] : TiApplication: \tat android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)\r\n[ERROR] : TiApplication: \tat android.os.Handler.handleCallback(Handler.java:751)\r\n[ERROR] : TiApplication: \tat android.os.Handler.dispatchMessage(Handler.java:95)\r\n[ERROR] : TiApplication: \tat android.os.Looper.loop(Looper.java:154)\r\n[ERROR] : TiApplication: \tat android.app.ActivityThread.main(ActivityThread.java:6119)\r\n[ERROR] : TiApplication: \tat java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] : TiApplication: \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)\r\n[ERROR] : TiApplication: \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)\r\n{code}\r\n\r\n\r\nAnd this is my code (xml, tss, js):\r\n\r\n*xml:*\r\n{code:xml}\r\n\r\n \r\n \r\n \r\n\t\r\n\t \r\n \r\n \r\n \r\n \r\n\r\n{code}\r\n\r\n*tss:*\r\n{code:css}\r\n'CardView': {\r\n\ttop: \"20dp\",\r\n\tleft: \"20dp\",\r\n\tright: \"20dp\",\r\n\tbottom: \"20dp\",\r\n\twidth: Ti.UI.FILL,\r\n\theight: Ti.UI.SIZE,\r\n\tcontentPadding: 40,\r\n\tcardCornerRadius: 20,\r\n\tcardUseCompatPadding: true,\r\n\tbackgroundColor: \"#fafafa\",\r\n\tlayout: 'vertical'\r\n}\r\n\r\n\".views\" : {\r\n\ttop: \"16dp\",\r\n\tlayout: \"horizontal\",\r\n\theight: Ti.UI.SIZE\r\n}\r\n\r\n\".icons\" : {\r\n\twidth: \"24dp\",\r\n\theight: \"24dp\"\r\n}\r\n{code}\r\n\r\n*js:*\r\n{code:javascript}\r\nvar array = [\"aaa\", \"bbb\", \"ccc\"];\r\n\r\nvar items = [];\r\n\r\nfor (var i = 0; i < array.length; i++)\r\n{\r\n \titems.push({\r\n \t\t\"name\" : { text: array[i] },\r\n \t\t\"template\" : \"temp\"\r\n \t});\r\n}\r\n$.section.setItems(items);\r\n{code}\r\n", "attachment": [], "flagged": false, "summary": "Android: can not use a CardView inside an ItemTemplate", "creator": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "subtasks": [], "reporter": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "environment": "SDK 6.3.0 GA (also tried 6.2.2 GA), \r\nAppcelerator Command-Line Interface, version 7.0.3\r\nOperating System\r\n Name = Mac OS X\r\n Version = 10.13.2\r\n\r\nNode.js\r\n Node.js Version = 8.9.1\r\n npm Version = 5.5.1\r\n\r\nTitanium CLI\r\n CLI Version = 5.1.0\r\n node-appc Version = 0.2.44\r\n\r\nTitanium SDKs = 7.1.1\r\nEmulator = Galaxy S8 7.0.0", "closedSprints": [ { "id": 1034, "state": "closed", "name": "2018 Sprint 10 SDK", "startDate": "2018-05-07T00:03:21.636Z", "endDate": "2018-05-21T00:03:00.000Z", "completeDate": "2018-05-20T20:54:58.928Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "437624", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master: https://github.com/appcelerator/titanium_mobile/pull/10045", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-05-14T23:32:00.000+0000", "updated": "2018-05-14T23:32:00.000+0000" }, { "id": "437741", "author": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR Passed, Waiting on the Jenkins build to merge.", "updateAuthor": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-05-17T19:09:42.000+0000", "updated": "2018-05-17T19:09:42.000+0000" }, { "id": "438283", "author": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket. Fix can be seen in SDK Version: 7.3.0.v20180607210411\r\n\r\nTest and other information can be found at: \r\nhttps://github.com/appcelerator/titanium_mobile/pull/10045", "updateAuthor": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-06-11T14:24:47.000+0000", "updated": "2018-06-11T14:24:47.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }