みるべあのエンジニア日記

勉強したことについてTwitterとガチブログの中間くらいのスタンスで書く日記

Flutterの環境構築 ~ flutter doctor all green まで ~

モバイルアプリを作れるようになりたい!
ということでFlutterの環境構築に挑戦してみました。

前提

Flutterのインストール

日本語のドキュメントがあるので素直に従ってインストールできました👍

flutter.ctrnost.com

私は zsh を使っているので .zshrc に以下記述してパスを通しました。

# Flutterディレクトリ配下にインストールしたため下記のとおり
export PATH="$PATH:/Users/myname/Flutter/flutter/bin"

Flutter実行環境の確認

flutter doctor コマンドで不足しているFlutterの実行環境を調べてくれます。

% flutter dctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-x64, locale ja-JP)
[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[✗] Xcode - develop for iOS and macOS
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
        sudo xcodebuild -runFirstLaunch
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the
        Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✓] Chrome - develop for the web
[!] Android Studio (not installed
[https://developer.android.com/studio?hl=ja:embed:cite]

)
[✓] VS Code (version 1.58.2)
[✓] Connected device (1 available)

! Doctor found issues in 3 categories.

不足しているのは2つですね。

Android Studioのインストール

  1. Android Studio をダウンロード
  2. Android Studio を起動してセットアップウィザードを実行

簡単にできそうだね♪
ここでもう再度 flutter doctor を実行します。

▼ エラー部分抜粋

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

素直に flutter doctor --android-licenses を実行します。

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 5 more

うわぁ〜〜〜...これ苦戦しそうな予感(´・ω・`)
ググるしかない!

ドンピシャの記事を発見🔎 zenn.dev

もういっちょflutter doctor --android-licenses を実行!

% flutter doctor --android-licenses
Android sdkmanager tool not found (/Users/myname/Library/Android/sdk/tools/bin/sdkmanager).
Try re-installing or updating your Android SDK,
visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions.

なんでーーーーーーーー!!!!!!😱😱😱😱😱

対処したこと

ググりにググってとりあえず対処できました。

cd /Applications/Android\ Studio.app/Contents/jre
ln -s ../jre jdk
ln -s "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin" jdk

再び flutter doctor --android-licenses を実行すると下記のように質問されるので全部 y です。

f:id:milkybear814:20210808130049p:plain

しんどかった。。

Xcode の対応

Xcode については sudo gem install cocoapods を実行すればクリアです。

f:id:milkybear814:20210808124945p:plain

できましたーーー٩(๑´3`๑)۶