かなり限定的な環境下で起きる現象の話ですが・・・
VirtualBoxでゴリゴリサーバーAPIとか作ってる時に
さー!そろそろアプリ繋ぎこむか!ってなっていざAndroidStudioを起動したら・・・
エミュレータが起動してくれなかった...orz
時の話
'Error while waiting for device'と言う謎のエラー
なんかstackoverflowで同じような事を言っている人がいる・・・
Emulator Not Running on Android Studio
どうやらVirtualBoxでインスタンスが起動しているとエミュが起動しないっぽい・・・
僕らにはまだ、'Genymotion'が...ある!! → あっさり解決ヽ(=´▽`=)ノ
さっくりAndroidStudioのエミュを諦めて、ちょっと遅くなるかもだけど'Genymotion'のエミュを使ってみる事にした。
で、あっさり解決しました!ヽ(=´▽`=)ノ
こんな感じでAndroidStudio起動中にちゃんとエミュが立ち上がります。
ちゃんとデバッグも出来ますね。
(エラーが起きちゃってるのはご愛嬌・・・ほら、こういうのを確認しようと思ってやってたから・・・)
肝心の構築手順
brew-caskでさっくり'Genymotion'を入れちゃいましょう。
[xcodeはインストールされている前提]
xcode-select --install
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap caskroom/cask
brew install caskroom/cask/brew-cask
brew cask install virtualbox
brew cask install genymotion
で、ここが肝ですが、'Genymotion'と'AndroidStudio'がみてるADBの場所をちゃんと合わせましょう。
僕は'AndroidStudio'の方のSDKの向け先を、'Genymotion'の方に向けて、ADBのパスを合わせました。
/Applications/Genymotion.app/Contents/MacOS/tools/
'AndroidStudio'の'preferences'から変えられます。
この方法だと、SDKのダウンロードが再度行われるので設定完了まではちょっと時間が掛かります。
エミュからVirtualBoxのサーバを見れるようにしないとそもそも意味がない
ので、忘れずに設定しましょう。
簡単です。
起動中のエミュのhostsファイルを書き換えて、名前とVirtualBoxのIPを書き込んじゃいましょう。
僕のMacのhostsには以下の用にVirtualBoxサーバの名前とIPの紐付け設定がされてます。
cat /etc/hosts
192.168.33.16 fwmhoge.localhost
192.168.33.16 webhoge.localhost
192.168.33.16 apihoge.localhost
...
コレをエミュに上書き
/Applications/Genymotion.app/Contents/MacOS/tools/adb root
/Applications/Genymotion.app/Contents/MacOS/tools/adb remount
/Applications/Genymotion.app/Contents/MacOS/tools/adb push /etc/hosts /system/etc
以上でエミュから'webhoge.localhost'でIP'192.168.33.16'が振られているVirtualBoxサーバに到達出来るようになります。
コレで快適にAndroidアプリ開発が出来るぜー!ヽ(=´▽`=)ノ
何方かの参考になれば幸いですm(__)m