WindowsでのFlutter環境の構築を図説(2022年1月版)

## 経緯
WindowsでFlutter環境を構築する際、Android SDKのライセンス許諾でハマったので、うまくいく手順を残しておきます。必要となるAndroid Studioのバージョンは2020.3.1です。筆者はWindows 11(Pro)を利用しましたが、Windows 10でも手順は同じだと思います

## 手順
まずは、[公式サイト](https://docs.flutter.dev/get-started/install/windows#get-the-flutter-sdk)からFlutter SDKをダウンロードして、任意のフォルダに展開します。展開後、"展開先のフォルダ\flutter\bin"にパスを通します。スペースや日本語が含まれるフォルダに展開するのは避けましょう。筆者はCドライブ直下に展開しました

次に、Android Studioをインストールします。[公式サイト](https://developer.android.com/studio?hl=ja)からインストーラーをダウンロードすることも可能ですが、今回は`winget`コマンドでラクをしました。`winget`コマンドを初めて利用する場合は"Y"を入力してライセンスを許諾します。`winget`なるコマンドがないという方は、Microsoft Storeアプリで「アプリ インストーラー」を最新化してください

```powershell
winget install Google.AndroidStudio
```

その他必要なアプリも`winget`でインストールします

```powershell
winget install Git.Git
winget install Google.Chrome
```

インストール後、Android Studioを起動します。ここからセットアップ手順が複雑なので図解します
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/cab37c30-5177-f250-ee89-0ce19f1db83c.png)
選択は任意です
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/73160621-6a18-21b0-cfb5-7f5b1587867f.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/97afb7d7-d982-70a3-93ad-5ca337c230a1.png)
Hyper-VやDocker Desktop for Windowsなどを利用してる場合は、Customを選択します。なお、筆者の物理PCにはすでに環境がセットアップ済みです。再インストールは辛いので、本記事のスクショ採取は、Nested Hyper-Vを有効にしたVM上で行っています
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/b2d45f53-5b08-4e5a-b9f4-afb8c7653291.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/cdf79747-160d-120f-3c71-9727f91ab082.png)
選択は任意です
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/3a2e7253-523d-93e8-fb35-7503b385f0f6.png)
先述の通り、Hyper-VやDocker Desktop for Windowsなどを利用している場合は、競合するIntel HAXMはオフにします
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/a2aebca5-d421-4cf2-43c9-826b1d8eeaad.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/3bb0d011-3cf8-baf6-aff1-23af9f359f67.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/f2231805-fb23-717a-fd8b-d9d63b58fbfa.png)
Welcome to Android Studioという画面が表示されたら、左側のペインからPluginsを選択しFlutterをインストールします
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/de5e76a6-4c58-1231-72ac-540e5f9e2260.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/92a893f9-e5df-3b95-adb8-717e4ab4ffe7.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/6896d916-fbf6-ae31-21e3-2bd1d204e0a2.png)
ついでにKotlinのアップデートが来ていたので適用しておきます
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/53ce24be-459e-9a7f-dc1d-22a1133b2b90.png)
アップデート適用後にIDEを再起動します
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/9109c3c8-a778-30c0-10fa-2af605961808.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/fafbfaf4-050e-a37b-b556-d0d49af7b24a.png)
再起動後SDK Managerを開きます
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/19b78b2d-bc6e-5412-d6ec-9a043185a81c.png)
後述するライセンス許諾のためのツールをインストールします
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/0c072365-7f33-b248-7224-280d1d73228d.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/439f40b7-03cd-a98b-a8b9-b597092c59db.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/47593a27-a7de-0110-e4ff-b203021012ca.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/61445a22-ec9b-68db-aae3-89371a5f72b8.png)

Android SDKのライセンス許諾のため以下のコマンドを実行します。聞かれることにすべて"y"で答えます

```powershell
flutter doctor --android-licenses
```
以下のコマンドで環境に不備がないか確認します。"-v"オプションを付けるとより詳細な情報が出力されます

```powershell
flutter doctor
```

AVD Managerを開きます
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/c29ac63d-3ce0-bfdb-8e95-d44fa5a52204.png)
ど真ん中のCreate Virtual Device...を押します
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/05d4c6cd-0fe6-06b8-b618-8d635d87499f.png)
詳しくは調べていませんが、変に古くなければ任意のデバイスでいいと思います
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/49cb3737-44f1-b430-e5d6-6ee591d6a3fc.png)
詳しくは調べていませんが、変に古くなければ任意のOSでいいと思います
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/f848f133-3879-9317-950c-9d2c4ea72514.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/bb83f297-0669-bc82-29e3-4d285a339488.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/a89dec18-aaed-6989-c72f-276891fada28.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/deac735f-3ad4-fa0e-bea5-fb9bdc3218a3.png)
![61.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/c2f3c532-7fc7-f2bd-1d6a-333f1dab6a09.png)
筆者の環境では、作成したAndroidエミュレーターをIDEがうまく認識できなかったので、いったん再起動しました。再起動後、New Flutter Projectを選択します
![36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/5334dda5-ba76-4d02-b684-9c652e81848d.png)
左側のペインでFlutterを選択し、Flutter SDKの展開先を指定します
![37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/c8063ac6-3b09-7a01-740d-6b1faa5b3e67.png)
使い捨てのプロジェクトなのでプロジェクト名が適当です
![38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/299ad426-2823-d64e-a713-583b246602a2.png)
画面上部のドロップダウンリストでRefreshを選択して、作成したAndroidエミュレーターを検出します
![47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/156fdef4-e17b-a37e-7bbf-5ae668a1570d.png)
しばらくするとAndroidエミュレーターが検出されるので選択します
![48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/c422443f-3448-9db8-4eeb-5571795cfc6e.png)
Androidエミュレーターの起動後に、画面右上の緑の再生ボタンを押します
![39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/e2c3b20a-e000-75c8-b176-3b3df7dd35fd.png)
無事にサンプルプログラムが起動しました。先述の通りNested Hyper-Vを利用すればVM上でもエミュレーターが起動します。下記のスクショでは分かりにくいのですが、エミュレーターはホストOS上ではなくゲストOS上で稼働しています(タスクバーに注目)
![53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222481/d0b786ca-460a-bf98-871e-f14e63da28db.png)