{ "id": "170078", "key": "AC-5298", "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": "8", "description": "", "name": "Needs more info" }, "resolutiondate": "2017-11-07T20:17:58.000+0000", "created": "2017-10-20T19:13:26.000+0000", "labels": [ "Android" ], "versions": [], "issuelinks": [], "assignee": { "name": "shossain", "key": "shossain", "displayName": "Shak Hossain", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2017-11-07T20:17:58.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": [ { "id": "14548", "name": "Titanium SDK & CLI", "description": "Please enter tickets related to the MobileSDK here." } ], "description": "App sometimes crash when accessing the actionbar, by calling window.getActivity().actionBar.\r\n\r\nIn ActionBarProxy.java, actionBar.setDisplayOptions I think it should be called on the UI thread : \r\nhttps://github.com/appcelerator/titanium_mobile/blob/master/android/titanium/src/java/org/appcelerator/titanium/proxy/ActionBarProxy.java#L58\r\n\r\n{code}\r\n10-20 15:02:13.209: W/System.err(26948): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.ViewRootImpl.checkThread(ViewRootImpl.java:8129)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:1258)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.ViewGroup.invalidateChild(ViewGroup.java:5430)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.View.invalidateInternal(View.java:13927)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.View.invalidate(View.java:13891)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.View.invalidate(View.java:13875)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.widget.ImageView.invalidateDrawable(ImageView.java:262)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:844)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.graphics.drawable.Drawable.setVisible(Drawable.java:1575)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.widget.ImageView.onDetachedFromWindow(ImageView.java:1511)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.View.dispatchDetachedFromWindow(View.java:15846)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.ViewGroup.removeViewInternal(ViewGroup.java:4952)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.ViewGroup.removeViewInternal(ViewGroup.java:4925)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.view.ViewGroup.removeView(ViewGroup.java:4856)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.support.v7.widget.Toolbar.setNavigationIcon(Toolbar.java:962)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.support.v7.widget.ToolbarWidgetWrapper.updateNavigationIcon(ToolbarWidgetWrapper.java:613)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.support.v7.widget.ToolbarWidgetWrapper.setDisplayOptions(ToolbarWidgetWrapper.java:392)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.support.v7.app.ToolbarActionBar.setDisplayOptions(ToolbarActionBar.java:260)\r\n10-20 15:02:13.219: W/System.err(26948): \tat android.support.v7.app.ToolbarActionBar.setDisplayOptions(ToolbarActionBar.java:254)\r\n10-20 15:02:13.219: W/System.err(26948): \tat org.appcelerator.titanium.proxy.ActionBarProxy.(ActionBarProxy.java:58)\r\n10-20 15:02:13.219: W/System.err(26948): \tat org.appcelerator.titanium.proxy.ActivityProxy.getActionBar(ActivityProxy.java:258)\r\n10-20 15:02:13.219: W/System.err(26948): \tat org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(Native Method)\r\n10-20 15:02:13.219: W/System.err(26948): \tat org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(V8Object.java:62)\r\n10-20 15:02:13.219: W/System.err(26948): \tat org.appcelerator.kroll.KrollProxy.doFireEvent(KrollProxy.java:921)\r\n10-20 15:02:13.219: W/System.err(26948): \tat org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1144)\r\n10-20 15:02:13.219: W/System.err(26948): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:363)\r\n10-20 15:02:13.219: W/System.err(26948): \tat org.appcelerator.titanium.proxy.TiWindowProxy.handleMessage(TiWindowProxy.java:116)\r\n10-20 15:02:13.229: W/System.err(26948): \tat ti.modules.titanium.ui.WindowProxy.handleMessage(WindowProxy.java:452)\r\n10-20 15:02:13.229: W/System.err(26948): \tat android.os.Handler.dispatchMessage(Handler.java:98)\r\n10-20 15:02:13.229: W/System.err(26948): \tat android.os.Looper.loop(Looper.java:158)\r\n10-20 15:02:13.229: W/System.err(26948): \tat org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:118)\r\n10-20 15:02:13.239: E/TiExceptionHandler(26948): (main) [112,4922] ----- Titanium Javascript Runtime Error -----\r\n10-20 15:02:13.239: E/TiExceptionHandler(26948): (main) [0,4922] - In undefined:7,39\r\n10-20 15:02:13.239: E/TiExceptionHandler(26948): (main) [0,4922] - Message: Uncaught Only the original thread that created a view hierarchy can touch its views.\r\n{code}\r\n", "attachment": [], "flagged": false, "summary": "Android: CalledFromWrongThreadException when accessing the action bar", "creator": { "name": "gaspard.le", "key": "gaspard.le", "displayName": "Luc-Edmond Gaspard ", "active": true, "timeZone": "America/Montreal" }, "subtasks": [], "reporter": { "name": "gaspard.le", "key": "gaspard.le", "displayName": "Luc-Edmond Gaspard ", "active": true, "timeZone": "America/Montreal" }, "environment": "Titanium SDK 6.2.2\r\nAndroid 6.0 and 7.0", "comment": { "comments": [ { "id": "429645", "author": { "name": "mrahman", "key": "mrahman", "displayName": "Mostafizur Rahman", "active": true, "timeZone": "Asia/Dhaka" }, "body": "Hello [~gaspard.le], Can you please share a simple test case to reproduce this on our end?\r\nThanks", "updateAuthor": { "name": "mrahman", "key": "mrahman", "displayName": "Mostafizur Rahman", "active": true, "timeZone": "Asia/Dhaka" }, "created": "2017-10-26T04:31:50.000+0000", "updated": "2017-10-26T04:31:50.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }