flutter
制作日: 2024年04月19日
バージョン管理にasdfを使っているので、そちらを利用。
最新バージョンをインストールする。
asdf install flutter latest
以下コマンドで状況チェック。
足りないものをインストールしたり、キャッシュをクリアしたり。
flutter doctor
基本的にVSCodeで開発しているので、Android Studioを入れたくない。
Android SDKのみを使う。
brewでandroid-sdkをインストールしようとおもったが、パースを読み取れないエラーが起きるので、公式から直接ダウンロードしてきた。
今回はダウンロードしたandroid-sdkを/usr/local/opt/android-sdk/に配置してパスを通した。
set -gx PATH $PATH /usr/local/opt/android-sdk/cmdline-tools/latest/bin
以下のエラーが発生した。
$ sdkmanager
java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 57.0
javaのバージョンが低いみたいなので、最新にアップデートする。
brew install --cask temurin
brew tap homebrew/cask-versions
brew install --cask temurin21
通った!
$ sdkmanager --version
12.0
Androidプラットフォームとインターフェースを提供するツールを含むAndroid SDKのコンポーネント
sdkmanager --install platform-tools
エミュレーター
sdkmanager --install emulator
ビルドツールとAndroidプラットフォーム
sdkmanager --verbose --install "build-tools;34.0.0" "platforms;android-34"
Androidのシステムイメージ
avdmanager create avd -n android34 -k "system-images;android-34;default;x86_64"
エミュレーターを起動。 ちゃんと起動しているかチェック。
emulator @android34
android-sdkを置いたところにパスを通す。
flutter config --android-sdk-dir "/usr/local/opt/android-sdk"
android studioは使用しないのでnullでok。
flutter config --android-studio-dir ""
Xcodeのエミュレーターにエラーが出た。
$ flutter dock
[!] Xcode - develop for iOS and macOS (Xcode 15.3)
✗ Unable to get list of installed Simulator runtimes.
以下で対処。
xcodebuild -downloadPlatform iOS
完了!
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.19.5, on macOS 14.4.1 23E224 darwin-x64, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
[✓] Chrome - develop for the web
[!] Android Studio (not installed)
[✓] VS Code (version 1.88.1)
[✓] Connected device (2 available)
[✓] Network resources
! Doctor found issues in 1 category.