目標
- Flutter 開発環境をWSL2上に作成する.
- Android Studioは入れない.
- エミュレートは
- Linux
- WSA(稀に成功する)
- Chrome
- 実機 (Android11以降)
- エディタはVSCodeを使用する.
前提
- Windows11 (22H2)
- WSL2
- Ubuntu 22.04.1
手順(コマンドは一つずつに分けて記載)
Flutter
- インストール済みパッケージのアップデート
Ubuntu
sudo apt update
Ubuntusudo apt upgrade
-
公式からダウンロードリンクを取得し,ダウンロード (リンクは取得したものに変更する)
Ubuntu
wget https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.3.9-stable.tar.xz
- 解凍
Ubuntu
tar xf flutter_linux_3.3.9-stable.tar.xz
-
~/.bashrc
に以下を追記~/.bashrcexport FLUTTER_ROOT=$HOME/flutter export PATH=$PATH:$FLUTTER_ROOT/bin
-
.bashrc
を反映Ubuntusource .bashrc
- 確認
Ubuntu
flutter --version
- 解凍前のtar.xzファイルを削除 (ファイル名は適宜変更する)
Ubuntu
rm -rf flutter_linux_3.3.9-stable.tar.xz
Java SDK
- インストール
Ubuntu
sudo apt install default-jdk -y
-
~/.bashrc
に以下を追記~/.bashrcexport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin
-
.bashrc
を反映Ubuntusource .bashrc
Linux toolchain
- 必要なものを確認
Ubuntu
flutter doctor
- 上記コマンドの結果,Linux toolchainで必要と表示されたものをインストール
Ubuntu
sudo apt install clang cmake ninja-build pkg-config
- もう一度確認
Ubuntu
flutter doctor
- 上記コマンドの結果,Linux toolchainで必要と表示されたものをインストール
Ubuntu
sudo apt install clang cmake ninja-build pkg-config
- もう一度確認
Ubuntu
flutter doctor
Android SDK
-
下記サイトから利用規約に同意したうえでダウンロードリンクを取得
https://developer.android.com/studio#downloads:~:text=d0192807f7e1cd4a001d13bb1e5904fc287b691211648877258aa44d1fa88275-,Linux,-commandlinetools%2Dlinux%2D9123335_latest -
ダウンロード(リンクは上で使用したものに置き換える)
Ubuntuwget https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip -O latest.zip
-
解凍
Ubuntuunzip latest.zip
unzip not found
と出たら,sudo apt install unzip
実行後にもう一度上記のコマンドで解凍する. -
移動
Ubuntumkdir -p ~/Android/SDK/cmdline-tools
Ubuntumv cmdline-tools ~/Android/SDK/cmdline-tools/latest
-
zipファイル削除
Ubunturm -rf latest.zip
-
~/.bashrc
に以下を追記~/.bashrcexport ANDROID_HOME=$HOME/Android/SDK export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
-
.bashrc
を反映Ubuntusource .bashrc
-
確認
Ubuntusdkmanager --version
参考結果:
8.0 -
インストールできるイメージの確認
Ubuntusdkmanager --list
-
adbの有効化
Ubuntusdkmanager --install "platform-tools"
-
イメージのインストール
Ubuntusdkmanager --install "system-images;android-33;google_apis;x86_64" "platforms;android-33" "build-tools;33.0.1"
当時の最新を選んだ.
-
ライセンスに同意
Ubuntusdkmanager --licenses
flutter環境確認
- 以下コマンドを実行
Ubuntu
flutter doctor
Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.3.9, on Ubuntu 22.04.1 LTS 5.15.74.2-microsoft-standard-WSL2, locale en_US.UTF-8) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1) [✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome) ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable. [✓] Linux toolchain - develop for Linux desktop [!] Android Studio (not installed) [✓] Connected device (1 available) [✓] HTTP Host Availability ! Doctor found issues in 2 categories.
VSCode
- 拡張機能「Flutter」を入れる
エミュレータ用意
Linux
- デフォルトで入っているはず.次のコマンドで確認
Ubuntu
flutter devices
Chrome
- Chrome拡張機能「Dart Debug Extension」を追加する
WSA (Windows Subsystem for Android)
- Microsoft StoreからAmazonアプリストアをインストール
Android実機 (Android11以降)
- 開発者向けオプションを有効化する
-
設定アプリ>デバイス情報
に入る - 「ビルド番号」を連打する
- PINを入力する
-
テスト
全エミュレータ共通
- Ubuntuで好きなディレクトリに移動
- テストアプリの作成
Ubuntu
flutter create hello_world
- アプリのディレクトリに移動
Ubuntu
cd hello_world
- 以下エミュレータごとに操作が異なる↓
Linux
-
code .
コマンドでVSCodeを開く -
lib/main.dart
をアクティブにする -
Ctrl Shift P
でコマンドパレットを開く -
Flutter: Select Device
でLinuxを選択 -
Ctrl Shift P
でコマンドパレットを開く -
Debug: Start Debugging
を実行
Chrome
-
code .
コマンドでVSCodeを開く -
lib/main.dart
をアクティブにする -
Ctrl Shift P
でコマンドパレットを開く -
Flutter: Select Device
でWeb Serverを選択 -
Ctrl Shift P
でコマンドパレットを開く -
Debug: Start Debugging
を実行 - Chromeが立ち上がったら読み込みが完了するまで待つ
- 拡張機能「Dart Debug Extension」のアイコンをクリック
WSA
- WSAに接続する.
<IPアドレス>
はWindowsのIPアドレスで置換する.Ubuntuadb <IPアドレス>:58526
-
code .
コマンドでVSCodeを開く -
lib/main.dart
をアクティブにする -
Ctrl Shift P
でコマンドパレットを開く -
Flutter: Select Device
でWeb Serverを選択 -
Ctrl Shift P
でコマンドパレットを開く -
Debug: Start Debugging
を実行 - 高確率でエラーが出る.対処法は不明
WSAとWSLの共存が問題か.
Android実機 (Android12以降)
-
設定アプリ>システム
で開発者向けオプションを開く -
ワイヤレスデバッグ
をオンにする- 「...許可しますか?」に許可する
- 接続情報を確認する
-
ペア設定コードによるデバイスのペア設定
をタップする - Wi-Fiペア設定コード,IPアドレス,ポートを確認する(画面は閉じない)
参考:192.168.11.12:34097(コロン前がIPアドレス,コロン後がポート番号)
-
- WSLとペアリングする
- IPアドレスとポート番号を指定する.
<IPアドレス>
と<ポート番号>
は上で確認したものに置換する.Ubuntuadb pair <IPアドレス>:<ポート番号>
-
Enter paring code:
と聞かれるので上で確認したWi-Fiペア設定コード
を入力 - 接続が完了したら
ペア設定コードによる...
の画面は閉じる
- IPアドレスとポート番号を指定する.
- WSLと接続する
-
IPアドレスとポート
に記載のIPアドレスとポート番号を確認する
参考: 192.168.11.12:34097 - WSLに接続する
Ubuntu
adb connect <IPアドレス>:<ポート番号>
-
- 以下コマンドでAndroid端末が現れることを確認
Ubuntu
flutter devices
-
code .
コマンドでVSCodeを開く -
lib/main.dart
をアクティブにする -
Ctrl Shift P
でコマンドパレットを開く -
Flutter: Select Device
で接続したAndroid端末を選択 -
Ctrl Shift P
でコマンドパレットを開く -
Debug: Start Debugging
を実行 - ビルド,読み込みが完了するまで待つ
- 拡張機能「Dart Debug Extension」のアイコンをクリック
コードの更新を反映する
- コードを書き換え,VSCode上部に出ているボタンの,⚡アイコンをクリック
- もしくはコードを書き換えて
Ctrl S