FlutterをWSLgのAndroidエミュレーターで動かす

パソコンを新調してもらい、Windows11になりました。
Windows11ではWSL2環境でLinux GUIアプリケーションを動作させるWSLgが使用可能なので、
WindowsにAndrois StudioをインストールせずにWSLでFlutter開発環境を作ってみました。

前提条件

  • Windows11
  • WSL2 Ubuntu20.04
  • Flutter SDK
  • Visual Studio Code
  • VSCode ExtentionのFlutter

これらは準備済みとします。

全体の流れ

  1. Android SDKのインストール
  2. Open JDKのインストール
  3. Andorid SDK内のディレクトリ変更
  4. sdkmanagerでの操作
  5. Andorid SKDのPATHを追加
  6. gradleをインストール
  7. エミュレーターの作成、起動
  8. VSCodeから起動したエミュレーターで実行
sudo apt-get install unzip x11-apps

wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
unzip commandlinetools-linux-7583922_latest.zip -d Android
rm commandlinetools-linux-7583922_latest.zip

sudo apt install default-jdk
java -version

cd Android
mv cmdline-tools latest
mkdir cmdline-tools
mv latest cmdline-tools
cd cmdline-tools/latest/bin

./sdkmanager "platform-tools" "platforms;android-32" "build-tools;32.0.0"
./sdkmanager "system-images;android-32;google_apis_playstore;x86_64"

export ANDROID_HOME=$HOME/Android
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
printf "\n\nexport ANDROID_HOME=$HOME/Android\nexport PATH=\$PATH:\$ANDROID_HOME/cmdline-tools/latest/bin\nexport PATH=\$PATH:\$ANDROID_HOME/emulator\nexport PATH=\$PATH:\$ANDROID_HOME/tools\nexport PATH=\$PATH:\$ANDROID_HOME/platform-tools" >> ~/.bashrc

sdkmanager --update
sdkmanager --licenses

sudo apt install gradle
gradle -v

flutter emulators
flutter emulators --create --name android32
flutter emulators --launch android32

エミュレーターが立ち上がったらVSCodeからFlutterを実行する端末を選択しF5で実行します。

便利な設定

便利というか設定推奨

Flutterコマンドの補完

flutter bash-completion > ./flutter
sudo mv ./flutter /etc/bash_completion.d/

Androidエミュレーターでキーボード入力を有効にする

WindowsのAndroid Studioから起動したエミュレーターではキーボードは有効なのにWSLで起動したエミュレーターではキーボード入力が効かないので、~/.android/avd/android32.avd/config.ini の設定を変更する。

hw.keyboard=yes