LoginSignup
0

More than 5 years have passed since last update.

posted at

AndroidStudioのエミュが起動しない(VirtualBox環境下だと)・・・だと!?

かなり限定的な環境下で起きる現象の話ですが・・・
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

Created by 株式会社デジタルクエスト 大野 修平 ( @saimushi )

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0