Android Studio 4.2.2におけるエミュレーター不具合について

2021年7月27日

最近、Android Studioをver 4.2.2アップデートしたのですが、エミュレーターが動作しなくなりました。もう、恒例行事ですね。

ところが、今回は実はまだ解決していません(2021年7月16日現在)。以下の対策をやってみました。⇒動作しました(2021年7月27日)

1.すべてのアップデートをインストールする

まずは、可能な限りのアップデートAndroid Studioに当てます。SDK Managerで、アップデートを当てていきます。

結果は、だめでした。

2.仮想端末の環境設定を変える

選択した仮想端末の環境を変えてみます。一番効果があるのが、Graphicsソフトエミュレーションにすることですが、これでは動作がさらに遅くなります。しかも、ソフトエミュレーションでも動作しませんでした。

そして、他の設定項目をいろいろいじっても、効果がありませんでした。

3.システムイメージを64ビット版にする

64ビットシステムイメージを持つ仮想端末も作成しましたが、だめでした。

4.グラフィックドライバを最新にする

グラフィックドライバを最新にしてみました。これも効果なしです。

5.AMD Vulkan driverの対処

エミュレーターのエラーの詳細を見ると、vulkanというのが悪さをしているようです。これと同じようなエラーが出て対処したWebページがあったので、同じように対策してみました。

advancedFeatures.iniというファイルを、ユーザフォルダ/.androidフォルダに作成します。そして、以下の記述をしました。

Vulkan = off
GLDirectMen = on

しかし、だめでした。

そこで、amdvlk64.dllをネットから探してsystem32フォルダに入れて、Android11(x64)仮想端末を起動してみましたが駄目でした。次に、vulkan-1.dllを用意しても結果は同じでした。

ついでにダメ元で、amdvlk32.dllも用意してみました。 すると、Android10仮想端末(x86)が動作しました。そして、Android11仮想端末(x86)を起動してみると、起動しました! amdvlk32.dllが効いたのでしょうか?

Android11(x64)仮想端末も動かしてみます。起動します!。しかし、本当にこれらDLLのおかげなのでしょうか?

これらDLLは、system32フォルダにはありませんでした。今まではあったのかどうかが良く分かりませんが、これらを入れないと動作しないのは、やっぱりおかしいです。

ちなみに、使用しているノートブックのCPUはインテル製だけど、GPUがAMD製なのでしょうか。もう少し調べます。

6.アップデートには覚悟が必要?

というわけで、現在お手上げです。エラーをgoogleに送りましたが、推奨環境を大きく下回るシステム環境なので、まともに相手はしてくれないかもしれません。

今回、Android 9の仮想端末は最初から動きました。Android 10以上の仮想端末が起動してくれません。そしてAndroid10Android11の仮想端末が動作しませんでしたが、玉虫色の解決になりました。

確かに実機を使ってテストが一番良いのですが、エミュレーターで動作しないと、幅広い環境での動作試験ができません。これからはAndroid 11が主流になりますが、実機がAndroid 10なので困ります。

これからも、バージョンアップすればトラブルが起きてくると思います。こういう工数って馬鹿にはなりません。趣味でなかったら、やってられないですね。

また、もう少し精査しながら作業しないと、本当の原因が掴めませんね。何か分かったら、加筆します。