Android Studio 4.2.2におけるエミュレーター不具合について
最近、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以上の仮想端末が起動してくれません。そしてAndroid10とAndroid11の仮想端末が動作しませんでしたが、玉虫色の解決になりました。
確かに実機を使ってテストが一番良いのですが、エミュレーターで動作しないと、幅広い環境での動作試験ができません。これからはAndroid 11が主流になりますが、実機がAndroid 10なので困ります。
これからも、バージョンアップすればトラブルが起きてくると思います。こういう工数って馬鹿にはなりません。趣味でなかったら、やってられないですね。
また、もう少し精査しながら作業しないと、本当の原因が掴めませんね。何か分かったら、加筆します。