【flutter/mac】VSCodeでエミュレーターデバッグを行う。

前提としてAndroidの場合はAndroidStudioをインストールしない環境でエミュレーターを起動してデバッグできたらと思います。

iOSのエミュレーターの場合

事前にXcodeのインストールが必要ですが割愛Xcodeをインストールする時に一緒に入る「iOS Simulator」を利用します。

  • VSCode左下のNo Deviceをクリックします。
  • 上部に出てくるダイアログで「Start iOS Simulator」をクリック
  • iOS Simulatorが起動します。
  • 先ほどの「No Device」が変わっている
  • あとはmain.dartファイルに合わせてデバッグを実行
    • 自分は「fn」+「F5」でいつもデバッグ実行しています。

Androidデバイスのエミュレーターでデバッグの確認

  • 「Start iOS Simulator」ではなく「Create Android Simulator」を選択
  • 下記のようなエラーが出た場合、自分の環境に合わせてパッケージをインストールする。自分の環境はM1Macなのでこのままx86(intelCPU)だとうまく動作しないのでarm版をインストールする必要があります。
sdkmanager "system-images;android-27;google_apis_playstore;x86"
  • 自分の場合はandroid-33のgoogle_apis(Androidスマホ)のarm版をインストールしたいのでsdkmanagerから有効なパッケージを探してみます。
sdkmanager --list | grep "system-images;android-33;"
system-images;android-33;google_apis;arm64-v8a                                           | 12           | Google APIs ARM 64 v8a System Image

欲しいパッケージが見つかったのでインストールします。

sdkmanager "system-images;android-33;google_apis;arm64-v8a"

インストールするパッケージがよくわからなければ。

sdkmanager --list

を実行して自分の環境に合ったパッケージをインストールしましょう。

このコマンドはGoogleTVなども全て含めるのである程度条件を絞った方がいいかと思います。

  • パッケージをインストールできたら仮想デバイスを作成しましょう
avdmanager create avd --name pixel4a --device "pixel_4a" --package "system-images;android-33;google_apis;arm64-v8a"

自分は仮想デバイス名を「pixel4a」として仮想デバイスは「pixel_4a」にしました。

–device “pixel_4a”については何があるのか

avdmanager list 

で調べましょう。作成しコマンドで確認してすると先ほどのデバイス名が表示されます。

emulator -list-avds
pixel4a
  • 不要なデバイスがあった場合はコマンドから削除できます。
avdmanager delete avd -n pixel4a
  • エミュレーターを起動
emulator @pixel4a 

起動されたら多分大丈夫です。

  • VSCodeに作成したデバイスがあったら同じように、main.dartファイルに合わせてデバッグを実行「fn」+「F5」でAndroidのデバッグができます。

その他のエラー

INFO    | Android emulator version 32.1.13.0 (build_id 10086546) (CL:N/A)
INFO    | AVD flutter_emulator has path /Users/im0039kp/.android/avd/flutter_emulator.avd
INFO    | trying to check whether /Users/im0039kp/development_sdk/Android/Sdk is a valid sdk root
WARNING | /Users/im0039kp/development_sdk/Android/Sdk/system-images/android-27/google_apis_playstore/x86/ is not a valid directory.
WARNING | emulator has searched the above paths but found no valid sdk root directory.
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

実行した時にこのようなエラーになった場合は.zshrc(.bashrc)にANDROID_SDK_ROOTを定義しましょう。

export ANDROID_SDK_ROOT=/Users/im0039kp/development_sdk/Android/Sdk
source .zshrc 

もう一度emulatorを実行しても

ERROR   | No AVD specified. Use '@foo' or '-avd foo' to launch a virtual device named 'foo'

こちらは仮想デバイスAVDが起動していないということです。advmanagerからデバイスを作成しましょう。

コメント