Android本の読書会から始めたことですが、仮想マシンでAndroid Studioを動かそうとしています。

 

目的は「Androidの開発環境でトラブることが多いので何度も最初から再インストールしたくない、同一PCに複数のバージョンの開発環境を入れてプロジェクトに応じて使い分けたい」の2つです。

まだ問題は残っていますが、現時点でできたことを記録しておきます。

 

ホストOSは64bitのWindows10 Homeです。最初はVirtualBoxを使って試してみました。

仮想マシンを作り、64bitのUbuntuサーバーをインストールし、Ubuntu MATE desktopを追加し、Android Studioを入れました。ゲストOSをLinuxにしたのはWindowsライセンスを追加購入したくなかったからです。

 

Android Studioは動き、プロジェクトが作成でき、実機のNexus7にアプリを焼くことはできましたが、AVDが動きません。

 

ネットで調べたところWindows版のHAXMに相当するKVMがないとだめとのこと。ここでネットの情報には「速いAVDを使いたいならばKVMが必要」という書き方と、単に「LinuxではKVMが必要」という2つのものがありました。そこで遅くても動けば良いと言うことでarmのAVDを作ったのですがやはり動きません。よって遅いAVDであってもLinuxでは必ずKVMが必要なのではないかと今のところ思っています。

 

そうすると前提として仮想マシンのVT-xが有効でなければならなくなりますが、VirtualBoxで作った仮想マシンはこれができない(nested virtualizationができない)、VMwareならできるという情報を見つけました。

 

そこでVMware Workstation 14 Playerで仮想マシンを作り、VT-xを有効にし、64bitのUbuntuサーバーをインストールし、KVMを有効にし、Ubuntu MATE desktopを追加し、Android Studioを入れました。実機のNexus7にアプリは焼けました。

 

それでもAVDは動かなかったのですがエラーメッセージが変わりました。そのエラーメッセージでネットの情報を探したところ、64bitのLinuxではAVDは一部32bitのライブラリを追加インストールしなければならないという情報を見つけました。つまりもう仮想化が原因ではなく64bitのLinuxならば出る問題ということです。

 

具体的にどのライブラリをインストールするのかが情報によって多少異なっているのは気になりますが一旦やってみました。一部のライブラリはエラーになって入りませんでしたがそういうこともあるとネット情報にありましたのでAVDを起動してみたのですがやはりエラー。

 

ネット情報のほとんどは32bitライブラリを追加する話でしたが、1つだけシェルからコマンド直打ちでAVDを起動せよ、その際起動時のオプションをつけよというのが見つかりました。それをやったところついにAVDが起動しました。Android Studioで作ったアプリをAVDで動作させることもできました。

 

ただしAVDを起動するとエラーメッセージがいくつか出る等まだ何かおかしいようです。AVDで動かしたアプリも簡単なものだけなので、もう少し複雑なものでも動くか今後確認してみるつもりです。

 

最後に64bitのLinuxだから面倒なことが起きているのなら32bitのUbuntuサーバーにしたらすっきりいくのかと思って試しましたが、こちらは他のライブラリが色々足りないらしくもっと面倒なことになってしまいました。Ubuntuの32bit版も提供が止まるようですしこちらでの追及はやめることにしました。

 

ということでまだおかしいところは残っていますが、一応仮想マシンでAndroid Studioを動かし、実機にもAVDにもアプリを焼くことはできました。進展があればまた書こうと思います。