souki-paranoiastのブログ

地方都市でプログラマーをやっている人のブログ。技術ネタ以外も少し書く。メインの言語はJava。https://paranoiastudio-japan.jimdo.com/ に所属

Flutter2.10.0でちょっと遊ぶためにインストール

遊ぶための下準備、インストール

兎にも角にもflutter 2.10.0をインストール。

インストールしてからflutter dockerを実行すると、2つほど問題が見つかった。 Android toolchain というのと Android Studio ということで、両方Android関連ぽい。

Android Studioをinstallして再度flutter dockerを実行しても、もう1つは解決していない。

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.10.0, on Microsoft Windows [Version 10.0.19043.1466], locale ja-JP)
[!] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.2.5)
[√] Android Studio (version 2021.1)
[√] IntelliJ IDEA Ultimate Edition (version 2018.3)
[√] IntelliJ IDEA Ultimate Edition (version 2019.3)
[√] IntelliJ IDEA Ultimate Edition (version 2021.1)
[√] Connected device (3 available)
[√] HTTP Host Availability

Run path/to/sdkmanager --install "cmdline-tools;latest" とは書いているが、sdkmanager --install "cmdline-tools;latest"を実行しても下記エラーが発生する。

bash: sdkmanager: command not found

path/to/配下じゃないので恐らく指しているものが違うのだが……どこのsdkmanagerを表現しているのだろう??pathに通っているものではないみたい。

$ where sdkmanager
D:\xxxx\cmdline-tools\bin\sdkmanager.bat

結局わからなかったのでググったらQiitaの記事がヒット。助かる。

Flutter doctor cmdline-tools componentエラー対処 - Qiita

これを参考に、インストールしたAndroid Studioを起動してcmdline-toolsをinstallする。

Android license status unknown.の箇所については書いてあるコマンドがそのまま実行できた。

flutter doctor --android-licenses

とりあえず動く環境の用意

Flutterのプロジェクトを作成する。 flutter createでプロジェクトを作るらしい。

flutter create -hの中にサンプルを作る方法が書いてあったのでまずはこれを作る。

# mysampleというフォルダでプロジェクトを作成
$ flutter create --sample=widgets.SingleChildScrollView.1 mysample

あとはIntelliJ IDEAやVS Codeなんかでこのプロジェクトを開く。

IntelliJ IDEA でChrome(Web)の指定
IntelliJ IDEA でChrome(Web)の指定

これで実行。 …少し時間を空けてChromeが立ち上がる。 (これはChromeと実際に表現されるけど、元々インストールしているChromeとは履歴情報なんかも共有していないみたいで、何なのだろう?)

めでたしめでたし……とはいかなかった。 Windows版が起動しなかった。 エラーメッセージは下記のようなもの。

ライブラリのコンピューターの種類 'x64' がターゲットのコンピューターの種類' x86' と競合しています

x86なんか入れた記憶はないが、恐らくUnityとか遊び用に入れた時に入ったのだろう。 上のflutter doctorの結果にも表示されているが、Visual Studio - develop for Windows (Visual Studio Community 2019 16.2.5)が競合しているようなので、折角だし最新のものを入れることにした。 Flutterは内部的にはC++がベースで動いているようなので対象はこんな感じにしてみた。どちらかは不要なのかもしれない。

x64モジュールのインストールをVisualStudio経由で
x64モジュールのインストールをVisualStudio経由で

最終的なflutter doctorは下記のようになった。

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.10.0, on Microsoft Windows [Version 10.0.19043.1526], locale ja-JP)
[√] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.0.5)
[√] Android Studio (version 2021.1)
[√] IntelliJ IDEA Ultimate Edition (version 2018.3)
[√] IntelliJ IDEA Ultimate Edition (version 2019.3)
[√] IntelliJ IDEA Ultimate Edition (version 2021.1)
[√] Connected device (3 available)
[√] HTTP Host Availability

• No issues found!

あとは端末を再起動して、再度実行する。が、残念ながらまたエラー発生。

CMake Error: Error: generator : Visual Studio 17 2022
Does not match the generator used previously: Visual Studio 16 2019
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.
Exception: Unable to generate build files

mysample/build/windows配下のCMakeCache.txtCMakeFilesフォルダを削除。

再度実行。やっと動いた。立ち上がるまでに結構時間かかるけど、hot reloadがあるので開発はしやすかな? Androidアプリ作ってみるか。