Androidエミュレーター(AVD)の不具合とアップデートについて
Androidエミュレーターを使っていて、以下のメッセージに良く遭遇します。
Emulator: glTexImage2D: got err pre 🙁 0x502 internal 0x1908 format 0x1908 type 0x1401
Emulator: android/android-emugl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp:glGetAttachedShaders:1631 error 0x501
これは、非力な開発環境だと良く起こる現象のようです。これを解消するには、仮想端末の設定を変えることと、アップデートを当てる方法の2つがあります。これらについてまとめてみました。
1.仮想端末の設定を変更する
アップデートをすると多大な時間と様々な問題が発生するので、とりあえずの応急措置として仮想端末の環境を変更します。
使いたい仮想端末を起動します。
そして、「設定」ボタンを押します。
さらに、「Settings」タブを選択します。
右側に表示された「Advanced」タブを選択します。
ここで、OpenGLの設定画面が出てきます。こちらの設定を変更して仮想端末を動かしてみてください。組み合わせてうまく動けば完了です。
私の場合はうまく動かないので、次の対策をしてみます。
2.AVDマネージャーで仮想端末の設定を変更する
AVDマネージャーを起動して、該当する仮想端末の設定を変更します。「修正」ボタンを押します。
「Show Advanced Settings」を選んで、詳細設定を行います。
仮想端末のメモリやストレージの設定がありますので、少なくして動作するか試してみましょう。
私はうまくいきませんでした。ここまでで駄目だった場合は、Android Studioのアップデートを遂行します。
3.Android Studioのアップデート
まずは、「ヘルプ」「Check for updates」を見てみます。
アップデートできる一覧が出てきます。しかし、6.18GBって?。アップデートでこれだけ必要なんてあり得ません。このアップデートをする前に、個別でアップデートすることにします。
4.SDKマネージャーで個別にアップデートする
SDKマネージャーを起動します。今回は、AndroAid 8.0と8.1をアップデートします。両者ともアップデートが用意されていることが分かります。
ここでチェックボタンをチェックしてアップデートしても良いのですが、イメージファイルについて考えてみます。よく見ると、イメージファイルが複数あることが分かります。
Intel x86 Atom Syste..
Google APIs Intel x86..
Google Play Intel x86..
エミュレーションには、これら3つのイメージのどれかを使えば良いことになっています。そして、上ほど軽くできていますが、すべての機能をエミュレーションできません。Google Play..は、Playストアからアプリがダウンロードできるほど完璧なエミュレーションができますが、重いです。
また、GoogleApiClientを利用する場合は、真ん中の「Google APIs Intel x86..」を使う必要があるかもしれません。これは、今テスト中です。「Intel x86 Atom Syste..」はとても軽いので使いたいのですが、位置情報などをエミュレーションできないのであれば意味がありません。⇒やっぱり、「Google APIs Intel x86..」でないと使えないようです。そろそろ開発機の更新が必要になりそう。
ちなみに64ビット版もありますが、32ビットが動けば64ビットも動くはずなので、インストールしなくても問題は少ないです。
※今は64ビット端末がほとんどなので、64ビットを選ぶのもありでしょう。
Android studioは奥深くて、私のレベルでは到底マスターし切れません。しかしAndroid開発を仕事としている人ならば、開発効率に大きな差が出ますから、面倒がらずにすべての機能を理解することが大事だと思います。