非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

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」という項目が現れたら成功です。

 

スポンサーリンク

 - Androidプログラミング, Flutter/Dart, Linux