Windows版Titanium StudioでAndroidエミュレーターが起動できないバグを修正する

Androidアプリを簡単に作れそうなのでTitaniumを触ってみました。インストール&セットアップはぐぐればすぐに見つかるので省略します。


環境構築は簡単に終わったのでサンプルの集合であるKitchen Sinkを動かそうと思ったのですがエミュレーターが起動しませんでした。私の環境は以下です。

  • OS: Windows XP 64bit
  • Titanium Studioのビルド: 1.0.6.201110251616
  • Titanium Studioのビルド日: 25 October 2011, 16:19:29

上記の環境でlogcatには以下が出力されていました。

[DEBUG] C:\apps\android-sdks\tools\emulator.exe -avd titanium_6_HVGA -port 5560 -sdcard C:\Documents and Settings\kappa\.titanium\titanium_6_HVGA.sdcard -logcat *:d,* -no-boot-anim -partition-size 128
invalid command-line parameter: and.
[DEBUG] signal caught: 3


どうやらandというおかしな引数がアプリへ渡っているようです。コマンドをよく見ると、引数は空白区切りなのにユーザーのホームを表すパスに空白が含まれています。そのため引数の区切りがおかしくなっています。Unix系アプリをWindowsへ移植した時によくあるバグですね。以下のように修正したらエミュレーターが正しく動きました。

以下のファイルの、

C:\Documents and Settings\kappa\Application Data\Titanium\mobilesdk\win32\1.7.5\android\builder.py

405行目のこれを、

self.sdcard,

このように修正します。

'"'+self.sdcard+'"',


このエラーはホームのパスに空白が入るせいで発生します。ですのでWindows VistaWindows 7ではおきないと思います。