[TIMOB-681] Android: Improve SDK detection and reporting.

GitHub Issuen/a
Resolution Date2011-04-17T01:53:54.000+0000
Affected Version/sn/a
Fix Version/sRelease 1.3.0
ReporterDon Thorp
AssigneeMarshall Culpepper


To help cut down on the number of support requests, it would be helpful to have builder.py detect and report more information.

1) The SDK field is filled in, if not display a message directing them to the profile page to set the location.

2) If the SDK directory is specified, insure that its directory contains

a) addons
b) platforms
c) tools

If not, walk backward up the directory tree and reperform the test until you're at the root directory, don't have permissions, or a matching directory is found. If a matching directory is found, display a message that it is configured incorrectly and show the path they should use insted. If not found, ask them to set the path manually and direct them to the profile page.

3) If the SDK directory is correct, verify that the tools directory contains

a) adb
b) android

If not then display a message saying that the directory does not have the tools required for and they may need to install.

4) If the SDK directory is correct, test for required platform for building. Using the directory mapper test for the presence of aapt and/or dx.

5) Validate the version of Java. Several people are still on Leopard and have 1.5 and not 1.6.

It might be beneficial to output a message for each of the tests that pass (e.g. [INFO] adb : OK, or [ERROR] dx : FAIL)


  1. Don Thorp 2011-04-15

    Also test for valid versions of tools http://developer.appcelerator.com/question/15151/windows-xp-and-classnotfoundexception-with-titanium-dev-121"> Q&A

  2. Marshall Culpepper 2011-04-15

    (from [9d6b034b42c14af2a2126e30b65b1663eed082fa]) added better device/emulator detection in the AndroidSDK module [#681] http://github.com/appcelerator/titanium_mobile/commit/9d6b034b42c14af2a2126e30b65b1663eed082fa"> http://github.com/appcelerator/titanium_mobile/commit/9d6b034b42c14...

  3. Marshall Culpepper 2011-04-15

    (from [b9bfce3a14a62b8cebb0bbe53199e87e1b84e650]) use more tolerant classname / activity name generation (this should strip dots, spaces, and generally anything not allowed in a classname) [#681] http://github.com/appcelerator/titanium_mobile/commit/b9bfce3a14a62b8cebb0bbe53199e87e1b84e650"> http://github.com/appcelerator/titanium_mobile/commit/b9bfce3a14a62...

  4. Marshall Culpepper 2011-04-15

    This commit to developer does most of the validation work:
    http://github.com/appcelerator/titanium_developer/commit/23b84ff94dbabdc09f4904a182b690d1a481010a"> http://github.com/appcelerator/titanium_developer/commit/23b84ff94d...

  5. Marshall Culpepper 2011-04-15

    (from [50bfa0b298c29e6a4fc364261233a882139856f2]) check java version on each launch, get prereq back to working like it should (and also check for java 1.6) [#681 state:resolved] http://github.com/appcelerator/titanium_mobile/commit/50bfa0b298c29e6a4fc364261233a882139856f2"> http://github.com/appcelerator/titanium_mobile/commit/50bfa0b298c29...

JSON Source