Ubuntu21.04にFlutterの環境構築したのでメモ
2021/11/08
Ubuntu21.04にFlutterの環境構築したので最新版ということでメモしておきます。
Android Studioのインストール
インストールする前にAVDを有効にするためにはKVMが必要。adb(Android Debug Bridge)もインストール。
$ sudo apt -y install qemu-kvm adb git $ sudo gpasswd -a "${USER}" kvm
Android Stuidoのインストール。
$ sudo snap refresh $ sudo snap install android-studio --classic
Android Studioを起動して以下の画面になるまで進める(初期設定を求められる)。ここまで進めないとFlutter側でAndroid Studioが認識できないと怒られるので。
Flutterのインストール
まず、以下のFlutter公式のダウンロードサイトを確認しましょう。
https://flutter.dev/docs/get-started/install/linux
Flutterに必要な各種環境ツールのインストール
$ sudo apt install bash clang curl git libcanberra-gtk-module libglu1-mesa unzip xz-utils zip
FlutterSDKをインストール。ちょっと前までは公式サイトからダウンロードする必要ありましたが、今は以下のコマンドで入手可能。パス設定も不要なので楽。
$ sudo snap install flutter --classic
flutter doctor
コマンドで依存関係をチェック。Android license status unknownと怒られました。ここまでは既定路線。
$ flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 2.2.1, on Linux, locale ja_JP.UTF-8) [!] 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/linux#android-setup for more details. [✓] Chrome - develop for the web [✓] Android Studio (version 2020.3) [✓] IntelliJ IDEA Community Edition (version 2021.2) [✓] VS Code (version 1.61.2) [✓] Connected device (1 available) ! Doctor found issues in 1 category.
指示に従って以下のコマンドを打つとjava.lang.NoClassDefFoundError発生。
$ 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
このエラーの対処法は以下にまとめています。
上記対処すると以下の通りすべてOKとなりました。
$ flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 2.2.1, on Linux, locale ja_JP.UTF-8) [✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0) [✓] Chrome - develop for the web [✓] Android Studio (version 2020.3) [✓] IntelliJ IDEA Community Edition (version 2021.2) [✓] VS Code (version 1.61.2) [✓] Connected device (1 available) • No issues found!
Android Studioの設定
Android StudioでFlutterの開発を行う場合は、プラグインをインストールする必要あります。初期画面の「Plugins」メニューから「Flutter」を探してインストールしましょう。
インストールが終わると「Restart IDE」というボタンが現れるので、それを押して再立ち上げしてください。
以下のように「New Flutter Project」というボタンが現れれば成功です。
VSCodeの設定
VSCodeで開発をする場合は、拡張機能をインストールする必要あります。拡張機能メニューからFlutterを探してインストールしてください。
インストールが終わったら、「表示」−「コマンドパレット」を選択しましょう。
コマンドパレットが現れたら「flutter」と打ってみてください。「Flutter: New Project」という項目が現れたら成功です。
スポンサーリンク