ソフトウェアを作成した後実機へUSBで転送するには、Eclipseからもできますが、adbコマンドをよく使います。

転送するには、”adb install hoge.apk”のように指定しますが、エミュレータを起動している状態で、USBで接続した実機に転送すると、「どちらにインストールしていいかわかりません」と言われます。


error: more than one device and emulator

このような時は、デバイス名を引数として指定してインストールを行うと記憶しており、打つのがめんどくさかったので、エミュレータを終了させて転送させていました。

いつのバージョンから出来るようになったのか、あるいはただ知らなかっただけなのかはわかりませんが、エミュレータを終了させなくても、実機へインストールする方法を見つけた?ので以下に記載します。


-d   - directs command to the only connected USB device
returns an error if more than one USB device is present.
-e   - directs command to the only running emulator.
returns an error if more than one emulator is running.

実機へ送るには、-dを、エミュレータに送るには、-eを指定します。

また、ほとんどの場合実機には、既に同じプログラムが入ってますので、バージョンアップインストールである、-rオプションを付けるのが良いと思います。


adb -d install -r hoge.apk
adb -e install -r hoge.apk

また、久しぶりにコマンドを調べてみたら、uninstall オプション-kなんてのを発見したり…


adb install [-l] [-r] <file> - push this package file to the device and install it
('-l' means forward-lock the app)
('-r' means reinstall the app, keeping its data)
adb uninstall [-k] <package> - remove this app package from the device
('-k' means keep the data and cache directories)

コマンド等、色々と復習しなおしたほうがよさそうです。

ブログ内の関連記事