どんな現象かというと、コードを変更して再度 Emulator の起動から実行すると、変更したコード(実行ファイル)が Emulator に反映されていないっぽいのです。
通常 Eclipse 上から Emulator を実行すると
- Emulatorが起動する
- 実行ファイル(.apkファイル)がインストールされる
通常 Emulator 起動後に Eclipse のコンソールにはアプリケーションのインストールを開始する旨のメッセージ、
Uploading hogehoge.apk onto device 'emulator-XXXX'
Installing hogehoge.apk...
成功!と出力されます。
私が遭遇した現象は Emulator の起動までは問題ないのですが、起動後にいくら待っても実行ファイルのインストールが始まりません。
これが仕様なのかなんかのかは関係なく、結構悩んだので対処法を書きます。
対処法は非常に簡単で、
Emulator が起動している状態で Eclipse からもう一回実行するだけ。
実行すると Android Device Chooser が立ち上がり、現在起動中のデバイス(ここではEmulator)が表示されるので、選択して [OK] をクリックします。
こうすると実行ファイルのインストールだけ行います。
この「Emulator が起動している状態」という考えが今まで無かったので、毎回長い時間 Emulator の起動を待って、挙句には実行ファイルがインストールされないという状態にイライラしていたのです。
この方法でインストールされなかったことは1度もありませんが、もしこれでもダメな場合は、ターミナル(Windowsはコマンドプロンプト)から直接コマンドを実行する手もあります。 ではコマンドで実行する手順を Emulator の起動から紹介します。
- 『emulator @エミュレータ名』を入力します。エミュレータ名はエミュレータ作成した際に自分で付けた名前です。
- Emulator の起動を待ちましょう。以下の画面が表示されたら起動完了です。
- 現在開いているターミナル(コマンドプロンプト)はそのままにして、新規にターミナル(コマンドプロンプト)を開きます。
- インストールコマンド『adb install -r hogehoge.apk』を入力します。
-r は既に同じアプリケーションがインストールされていた場合は上書きする。という意味です。新規でインストールする際は付けなくても良いですが付けても問題ないです。上書きの際は付けないとインストールできません。
最後に実行ファイル名をフルパスで指定します。Eclipse で開発をしている場合は、ワークスペースの bin ディレクトリに作成されるのでそれを指定しましょう。
インストールコマンドを実行すると以下のメッセージが表示されます。
486 KB/s (24129 bytes in 0.048s)
pkg: /data/local/tmp/hogehoge.apk
Success
1行目はおそらく転送速度が表示されているので、毎回数値が異なります。
2行目はインストール先です。Androidのアプリケーションはファイルシステムの/data/local/tmpにインストールされます。
Eclipseでインストールする場合もコマンドでインストール場合も Emulator は常に起動したままで構いません。Emulator の起動は遅いので待ってられませんもんね。
0 件のコメント:
コメントを投稿