{ "id": "76944", "key": "TIMOB-4510", "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": "15699", "description": "2013 Sprint 21", "name": "2013 Sprint 21", "archived": true, "released": true, "releaseDate": "2013-10-18" }, { "id": "15701", "description": "2013 Sprint 21 Core", "name": "2013 Sprint 21 Core", "archived": true, "released": true, "releaseDate": "2013-10-18" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-10-19T01:13:30.000+0000", "created": "2011-06-27T17:48:09.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "androidbuild", "ay-verified", "cb-verified" ], "versions": [ { "id": "11367", "description": "", "name": "Release 1.7.1", "archived": true, "released": true, "releaseDate": "2011-06-21" } ], "issuelinks": [ { "id": "11177", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "outwardIssue": { "id": "40779", "key": "TISTUD-112", "fields": { "summary": "Clean doesn't actually clean a mobile project", "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" } }, "priority": { "name": "Low", "id": "4" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } }, { "id": "31392", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "119158", "key": "TIMOB-14974", "fields": { "summary": "Android Build: Detect if need to force rebuild", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2013-11-11T19:20: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": "10202", "name": "Android", "description": "Android Platform" }, { "id": "10207", "name": "Tooling" } ], "description": "Android requires that tiapp.xml is modified (touched) to force a full rebuild, whereas iOS checks for files in the build/iphone directory. To demonstrate this, follow these steps:\r\n\r\n* cd $PROJECT/build/android\r\n* touch ../../tiapp.xml\r\n* rm -rf * (delete all files and folders within build/android)\r\n* launch app with the following code:\r\n\r\n{code:lang=javascript}\r\nTi.UI.backgroundColor = \"white\";\r\nvar win = Ti.UI.createWindow({\r\n exitOnClose: true\r\n});\r\nvar prod_button = Ti.UI.createButton({\r\n width:81,\r\n height:21,\r\n top:125,\r\n left:150,\r\n title:'View Online',\r\n font:{fontSize:10,fontWeight:'bold'}\r\n});\r\nwin.add(prod_button);\r\nwin.open();\r\n{code}\r\n\r\n* after successful app launch, replace code above (does not contain maps) with the code below (contains maps)\r\n* do *not* touch tiapp.xml\r\n* cd $PROJECT/build/android\r\n* rm -rf * (delete all files and folders within build/android)\r\n* launch app\r\n\r\n{code:lang=javascript}\r\nTi.UI.backgroundColor = \"white\";\r\nvar win = Ti.UI.createWindow({\r\n exitOnClose: true\r\n});\r\nvar mapview = Ti.Map.createView({\r\n mapType: Ti.Map.STANDARD_TYPE,\r\n region:{latitude:33.74511, longitude:-84.38993, latitudeDelta:0.5, longitudeDelta:0.5},\r\n animate:true,\r\n regionFit:true,\r\n userLocation:true\r\n});\r\nwin.add(mapview);\r\nwin.open();\r\n{code}\r\n\r\nThe app does not launch, nothing is output to logcat, but the following \"Application Installer\" console errors occur:\r\n\r\n{code}\r\n[INFO] logfile = /home/appcel/Titanium Studio Workspace/testing7/build.log\r\n[DEBUG] /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/builder.py simulator testing7 /opt/android-sdk /home/appcel/Titanium Studio Workspace/testing7 com.testing.testing7 6 WVGA800 \r\n[INFO] Building testing7 for Android ... one moment\r\n[INFO] Titanium SDK version: 1.7.1 (06/17/11 00:13 1293a6d...)\r\n[DEBUG] Waiting for device to be ready ...\r\n[TRACE] adb devices returned 1 devices/emulators\r\n[DEBUG] Device connected... (waited 0 seconds)\r\n[DEBUG] waited 0.004323 seconds on emulator to get ready\r\n[DEBUG] /opt/android-sdk/platform-tools/adb -e shell ls /data/app/com.testing.testing7*.apk\r\n[DEBUG] com.testing.testing7 installed? True\r\n[INFO] Fastdev server running, deploying in Fastdev mode\r\n[INFO] Copying project resources..\r\n[TRACE] COPYING MODIFIED FILE: /home/appcel/Titanium Studio Workspace/testing7/Resources/app.js => /home/appcel/Titanium Studio Workspace/testing7/build/android/bin/assets/Resources/app.js\r\n[TRACE] Generating Java Classes\r\n[DEBUG] detected module analytics, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-analytics.jar\r\n[DEBUG] detected module android, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-android.jar\r\n[DEBUG] adding required library: titanium.jar\r\n[DEBUG] adding required library: ti-commons-codec-1.3.jar\r\n[DEBUG] adding required library: smalljs.jar\r\n[DEBUG] adding required library: jaxen-1.1.1.jar\r\n[DEBUG] detected module ui, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module app, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-app.jar\r\n[DEBUG] detected module api, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-api.jar\r\n[DEBUG] detected module filesystem, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-filesystem.jar\r\n[DEBUG] detected module media, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-media.jar\r\n[DEBUG] detected module json, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-json.jar\r\n[DEBUG] detected module locale, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-locale.jar\r\n[INFO] Force including all modules...\r\n[DEBUG] detected module android.calendar, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-calendar.jar\r\n[DEBUG] detected module media.android, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-media.jar\r\n[DEBUG] detected module database, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-database.jar\r\n[DEBUG] detected module android.optionmenu, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module ui.clipboard, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module ui.android, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module ui.iphone, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module ui.activityindicator, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module bump, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-bump.jar\r\n[DEBUG] adding required library: bump-api.jar\r\n[DEBUG] detected module geolocation, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-geolocation.jar\r\n[DEBUG] detected module yahoo, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-yahoo.jar\r\n[DEBUG] detected module network, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-network.jar\r\n[DEBUG] detected module xml, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-xml.jar\r\n[DEBUG] detected module utils, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-utils.jar\r\n[DEBUG] detected module titanium.stream, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/titanium.jar\r\n[DEBUG] detected module titanium, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/titanium.jar\r\n[DEBUG] detected module kroll, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/titanium.jar\r\n[DEBUG] detected module titanium.codec, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/titanium.jar\r\n[DEBUG] detected module accelerometer, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-accelerometer.jar\r\n[DEBUG] detected module facebook, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-facebook.jar\r\n[DEBUG] detected module network.socket, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-network.jar\r\n[DEBUG] detected module contacts, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-contacts.jar\r\n[DEBUG] detected module app.android, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-app.jar\r\n[DEBUG] detected module app.properties, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-app.jar\r\n[DEBUG] detected module android.notificationmanager, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-android.jar\r\n[DEBUG] detected module gesture, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-gesture.jar\r\n[DEBUG] detected module map, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-map.jar\r\n[DEBUG] detected module platform, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-platform.jar\r\n[DEBUG] unknown module = ui.iphone.tableviewcellselectionstyle\r\n[DEBUG] unknown module = ui.iphone.tableviewstyle\r\n[DEBUG] unknown module = ui.iphone.systembuttonstyle\r\n[DEBUG] unknown module = ui.currentwindow.app.window\r\n[DEBUG] Detecting modules in /home/appcel/Titanium Studio Workspace/testing7/modules\r\n[DEBUG] Detecting modules in /home/appcel/.titanium/modules\r\n[TRACE] Generating /home/appcel/Titanium Studio Workspace/testing7/build/android/gen/com/testing/testing7/Testing7AppInfo.java\r\n[TRACE] Generating /home/appcel/Titanium Studio Workspace/testing7/build/android/AndroidManifest.xml\r\n[TRACE] Generating /home/appcel/Titanium Studio Workspace/testing7/build/android/gen/com/testing/testing7/Testing7Application.java\r\n[TRACE] Generating /home/appcel/Titanium Studio Workspace/testing7/build/android/gen/com/testing/testing7/Testing7Activity.java\r\n[TRACE] Generating /home/appcel/Titanium Studio Workspace/testing7/build/android/.classpath\r\n[TRACE] Generating /home/appcel/Titanium Studio Workspace/testing7/build/android/.project\r\n[TRACE] Generating /home/appcel/Titanium Studio Workspace/testing7/build/android/default.properties\r\n[TRACE] Skipping copying gitignore -> .gitignore because already exists\r\n[DEBUG] detected module analytics, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-analytics.jar\r\n[DEBUG] detected module android, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-android.jar\r\n[DEBUG] adding required library: titanium.jar\r\n[DEBUG] adding required library: ti-commons-codec-1.3.jar\r\n[DEBUG] adding required library: smalljs.jar\r\n[DEBUG] adding required library: jaxen-1.1.1.jar\r\n[DEBUG] detected module ui, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module app, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-app.jar\r\n[DEBUG] detected module api, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-api.jar\r\n[DEBUG] detected module filesystem, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-filesystem.jar\r\n[DEBUG] detected module media, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-media.jar\r\n[DEBUG] detected module json, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-json.jar\r\n[DEBUG] detected module locale, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-locale.jar\r\n[INFO] Force including all modules...\r\n[DEBUG] detected module android.calendar, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-calendar.jar\r\n[DEBUG] detected module media.android, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-media.jar\r\n[DEBUG] detected module database, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-database.jar\r\n[DEBUG] detected module android.optionmenu, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module ui.clipboard, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module ui.android, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module ui.iphone, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module ui.activityindicator, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-ui.jar\r\n[DEBUG] detected module bump, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-bump.jar\r\n[DEBUG] adding required library: bump-api.jar\r\n[DEBUG] detected module geolocation, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-geolocation.jar\r\n[DEBUG] detected module yahoo, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-yahoo.jar\r\n[DEBUG] detected module network, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-network.jar\r\n[DEBUG] detected module xml, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-xml.jar\r\n[DEBUG] detected module utils, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-utils.jar\r\n[DEBUG] detected module titanium.stream, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/titanium.jar\r\n[DEBUG] detected module titanium, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/titanium.jar\r\n[DEBUG] detected module kroll, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/titanium.jar\r\n[DEBUG] detected module titanium.codec, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/titanium.jar\r\n[DEBUG] detected module accelerometer, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-accelerometer.jar\r\n[DEBUG] detected module facebook, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-facebook.jar\r\n[DEBUG] detected module network.socket, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-network.jar\r\n[DEBUG] detected module contacts, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-contacts.jar\r\n[DEBUG] detected module app.android, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-app.jar\r\n[DEBUG] detected module app.properties, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-app.jar\r\n[DEBUG] detected module android.notificationmanager, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-android.jar\r\n[DEBUG] detected module gesture, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-gesture.jar\r\n[DEBUG] detected module map, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-map.jar\r\n[DEBUG] detected module platform, path = /home/appcel/.titanium/mobilesdk/linux/1.7.1/android/modules/titanium-platform.jar\r\n[INFO] Compiling Javascript Resources ...\r\n[DEBUG] Processing Android resource drawables\r\n[DEBUG] Detecting modules in /home/appcel/Titanium Studio Workspace/testing7/modules\r\n[DEBUG] Detecting modules in /home/appcel/.titanium/modules\r\n[DEBUG] app stylesheet => /home/appcel/Titanium Studio Workspace/testing7/build/android/gen/com/testing/testing7/ApplicationStylesheet.java\r\n[DEBUG] copying app icon: /home/appcel/Titanium Studio Workspace/testing7/build/android/bin/assets/Resources/appicon.png\r\n[ERROR] Exception occured while building Android project:\r\n[ERROR] Traceback (most recent call last):\r\n[ERROR] File \"/home/appcel/.titanium/mobilesdk/linux/1.7.1/android/builder.py\", line 1947, in \r\n[ERROR] s.build_and_run(False, avd_id, debugger_host=debugger_host)\r\n[ERROR] File \"/home/appcel/.titanium/mobilesdk/linux/1.7.1/android/builder.py\", line 1740, in build_and_run\r\n[ERROR] self.manifest_changed = self.generate_android_manifest(compiler)\r\n[ERROR] File \"/home/appcel/.titanium/mobilesdk/linux/1.7.1/android/builder.py\", line 811, in generate_android_manifest\r\n[ERROR] shutil.copy(iconpath, dest_icon)\r\n[ERROR] File \"/usr/lib/python2.6/shutil.py\", line 88, in copy\r\n[ERROR] copyfile(src, dst)\r\n[ERROR] File \"/usr/lib/python2.6/shutil.py\", line 52, in copyfile\r\n[ERROR] fsrc = open(src, 'rb')\r\n[ERROR] IOError: [Errno 2] No such file or directory: u'/home/appcel/Titanium Studio Workspace/testing7/build/android/bin/assets/Resources/appicon.png'\r\n{code}\r\n\r\n* no improvement is observed when the app is relaunched any number of times\r\n* once the tiapp.xml file is touched, a \"Detected tiapp.xml change, forcing full re-build...\" message is output to the console, and the app is launched as expected\r\n\r\n", "attachment": [], "flagged": false, "summary": "Force full re-build discrepancy between Android and iOS - Android requires modified tiapp.xml", "creator": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "subtasks": [], "reporter": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "environment": "Tested on Android, where the tiapp.xml file does need to be modified in order to force a full rebuild (and enable the app to launch when components of the Ti SDK are missing from the build files):\r\n* Titanium 1.7.1 (2011/06/17 00:13 293a6d...)\r\n* Android 2.1 (APIs)\r\n* Titanium Studio, build: 1.0.1.201106171427 17 June 2011, 14:29:22\r\n\r\nAlso tested on iOS, where the tiapp.xml file does *not* need to be modified:\r\n* Titanium SDK version: 1.7.1 06/21/11 14:28 githash=1293a6d \r\n* iPhone Device family: universal\r\n* iPhone SDK version: 4.3\r\n* Build version 4A304a", "comment": { "comments": [ { "id": "275620", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "The new Android build solves this. It no longer requires tiapp.xml to be modified to force a rebuild. It carefully checks 33 variables that can trigger a full rebuild.", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2013-10-18T11:02:50.000+0000", "updated": "2013-10-18T11:02:50.000+0000" }, { "id": "275792", "author": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/4781", "updateAuthor": { "name": "ayeung", "key": "ayeung", "displayName": "Allen Yeung", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-10-19T01:12:22.000+0000", "updated": "2013-10-19T01:12:22.000+0000" }, { "id": "278982", "author": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified fixed on:\nMac OSX 10.9 Mavericks\nTitanium Studio, build: 3.2.0.201311100540\nTitanium SDK, build: 3.2.0.v20131110134044\nCLI: 3.2.0\nAlloy: 1.3.0\n\nProject successfully builds and installs on emulator without needing to touch tiapp.xml.\nClosing.", "updateAuthor": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-11-11T19:20:52.000+0000", "updated": "2013-11-11T19:20:52.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }