TicTacToeLibを単体で起動 ( ActivityManager: Starting: Intent が飛んでこないときの対処 )

おぉ、Androidの話題なんて書いちゃって、格好良すぎるなおれ。

Android SDKのサンプルにTicTacToe(Lib|Main)というのがある。単なるおバカなマルバツゲームなのだけど、MainがLibを呼び出すことで動くようになっている。で、試しにLibだけ単体で動かしてみようと思ったら、ちょっとはまったのでメモ。

まず、Properties -> Android -> Library の is Library のチェックを外す。これは簡単。こうすることによって単体で起動できる(Run Asが可能に)。

ところがこれだけだと、 コンソールに「ActivityManager: Starting: Intent」というメッセージが表示されず、アプリを起動することができない。AndroidManifest.xmlをいじくれば良いかと思い、ADT plugin付属のエディターでいじくってみたけれど効果なし。

気分転換に直接ファイルを見てみたら、intent-filterディレクティブがなかった。ので、追加した。

        <activity android:name=".GameActivity">
          <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
        </activity>

そしたら動いた。

これもエディターで設定できるようになっているべきだとおもふ。それか全て直接編集させるか。「ほとんどエディターでいじくれますよ、でも例外的にこいつだけはいじくれないぞ、HaHaHa」というのはちょっといやらしい。