{ "id": "62841", "key": "TIMOB-2209", "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:08:16.000+0000", "created": "2011-04-15T03:13:36.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "android", "androidbuild", "ay-verified", "cb-verified", "defect", "tooling" ], "versions": [], "issuelinks": [ { "id": "31412", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "119164", "key": "TIMOB-14979", "fields": { "summary": "Android Build: Build Java files and run dexer", "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:24:07.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": "Before all of our new changes for stylesheet and RA.java code generation we knew when new Java code was generated so we could skip the javac and dex parts of the APK building process. We need to go back through and make sure to only dex/javac when necessary.", "attachment": [], "flagged": false, "summary": "Android: Re-enable incremental build", "creator": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "mculpepper", "key": "mculpepper", "displayName": "Marshall Culpepper", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "127831", "author": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

IMHO this should be a blocker for the 1.5.0 release, since I\nimagine this problem is going to give a very poor experience for\nAndroid developers. I have a 2009-era Mac Mini and even if I just\nmake a one-line change in a javascript file I have to wait 5-10min\nfor Titanium to rebuild and show me my change in the emulator :(.\nIt's a big enough problem for me that I'm having to stop Android\ndevelopment and shift my time over to hacking up a fix for\nthis.

{html}", "updateAuthor": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:13:37.000+0000", "updated": "2011-04-15T03:13:37.000+0000" }, { "id": "127832", "author": { "name": "robby", "key": "robby", "displayName": "Robby", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

+1 ...would be thrilled to reduce the multi-minute build times\nwhenever I make a code change on Android (even if it's not as good\nas it is with the iPhone, where you can just make a change in a\nsource file and it will be reflected the next time that file is\niterated, rebuild or not)

{html}", "updateAuthor": { "name": "robby", "key": "robby", "displayName": "Robby", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:13:37.000+0000", "updated": "2011-04-15T03:13:37.000+0000" }, { "id": "127833", "author": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Here's a workaround until they fix it; brings my re-build times\ndown to 5 seconds :)

\n

Open android/builder.py and change

\n

self.build_generated_classes()
\ngenerated_classes_built = True

\n

to (making sure you have the whitespace correct)

\n

generated_classes_built = False
\nif manifest_changed or self.tiapp_changed or self.deploy_type ==\n\"production\":
\nself.build_generated_classes() generated_classes_built = True\nelse:
\ninfo(\"Manifest unchanged, skipping Java build\")

{html}", "updateAuthor": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:13:37.000+0000", "updated": "2011-04-15T03:13:37.000+0000" }, { "id": "127834", "author": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

With proper formatting (I hope):

\n
\nself.build_generated_classes() \ngenerated_classes_built = True\n
\n
\ngenerated_classes_built = False \nif manifest_changed or self.tiapp_changed or self.deploy_type == \"production\": \n  self.build_generated_classes() \n  generated_classes_built = True \nelse: \n  info(\"Manifest unchanged, skipping Java build\")\n
{html}", "updateAuthor": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:13:37.000+0000", "updated": "2011-04-15T03:13:37.000+0000" }, { "id": "127835", "author": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

More changes needed now:

\n

In builder.py within build_and_run, change

\n
\nif self.install: self.wait_for_device('e')\nelse: self.wait_for_device('d')\n
\nto
\n
\nif self.install: self.wait_for_device('d')\nelse: self.wait_for_device('e')\n
\n

And in builder.py within package_and_deploy, change

\n
\nfor jar in self.module_jars:\n  apk_build_cmd += ['-rj', jar]\n
\nto
\n
\n#for jar in self.module_jars:\n  #apk_build_cmd += ['-rj', jar]\n
\n(may need to be conditionally skipped based on if a full build is\nbeing done or not; haven't confirmed yet)
{html}", "updateAuthor": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:13:38.000+0000", "updated": "2011-04-15T03:13:38.000+0000" }, { "id": "127836", "author": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Any updates on this? I'm getting back into Android development\nand very sad to find it still broken in 1.6.1 :(

{html}", "updateAuthor": { "name": "matthewlieder", "key": "matthewlieder", "displayName": "Matthew Lieder", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:13:38.000+0000", "updated": "2011-04-15T03:13:38.000+0000" }, { "id": "275787", "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:08:10.000+0000", "updated": "2013-10-19T01:08:10.000+0000" }, { "id": "278983", "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\nSuccessfully built android project for emulator 2.3.3 incrementally.\nClosing", "updateAuthor": { "name": "sdowse", "key": "sdowse", "displayName": "Samuel Dowse", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-11-11T19:23:59.000+0000", "updated": "2013-11-11T19:23:59.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }