はじめに
Flutter開発のアルバイトでFirebase導入後のプロジェクトで、ミニマムデバイスの画面サイズでオーバーフローが起こらないか調査しようとした際に、サイズを指定したエミュレータを作成しました。アプリ起動時、Flutterのロゴで止まってしまう事象に遭遇したため、調査をしたところ下記の原因が最も有力になり、対策を行ったところ無事に解決しました。
Android StudioのエミュレータでFireStoreを使用しようとした際、Google Play Storeに対応していないエミュレータでは問題が発生することがあります。
この記事では、その問題の解決策と、Google Play Storeを有効にする方法について説明します。
問題の背景
FireStoreを含む一部のFirebase SDKは、Google Play servicesに依存しています。そのため、Google Play servicesがインストールされていないデバイスやエミュレータでは、これらのサービスが正常に動作しない可能性があるそうです。
解決策
1. Android Studioの Virtual Device Manager を開きます
2.対象のエミュレータの詳細メニュー(3点リーダー)をクリックし、「Show on Disk」を選択します
3.config.iniファイルをテキストエディタで開きます
以下の2箇所を変更します:
PlayStore.enabled=true
image.sysdir.1 = system-images/android-XX/google_apis_playstore/ARCH/
注意: XXはAndroidのAPIレベル、ARCHはアーキテクチャを示します。
4.変更を保存し、エミュレータを再起動します。
おわりに
Google Play Storeに対応していないエミュレータでFireStoreを使用する際の問題は、エミュレータの設定を変更してGoogle Play Storeを有効にすることで解決できました。(変更する箇所が少なすぎてこの問題で躓いていたのがすごく悔しかったです...)
同じ問題で悩んでいる方の参考になれば幸いです!