Last updated on 2023年2月9日
Ubuntuに Flutter をいれて楽しくアプリ開発をしようと思っていたのですが思わぬ苦戦に陥りました。なんとなく癪なので、ブログで共有して供養したいと思います。
基本的には公式チュートリアルに従って進めます。
https://docs.flutter.dev/get-started/install/linux
UbuntuにFlutterを導入するステップは全部で3つに分けることができます。
- FlutterSDKのインストール
- Androidのセットアップ
- Android Studioのインストール
- Androidデバイスのセットアップ
- Android emulatorのセットアップ
- Android Licenceの認証
以下、順番にやっていきます。
Contents
Flutter SDKのインストール
チュートリアルを見てみると、前提となるコマンドが以下の通り存在するよーと言われています。
Tools: Flutter depends on these command-line tools being available in your environment.
bash
curl
file
git 2.x
mkdir
rm
unzip
which
xz-utils
zip
次のコマンドを打ち込んで一気にインストール。
$ sudo apt install bash clang curl git libcanberra-gtk-module libglu1-mesa unzip xz-utils
次はFlutter SDKをインストールするのですが、snapdというツールを使うと楽らしいので、snapdを先にインストールします。snapdをインストールしたあと、下記のコマンドを使ってFlutterを一気にインストール。
$ sudo snap install flutter --classic
次は、パスを通します。
どこでもよいのですが、以下のようにしました。
$ export PATH=$PATH:/usr/local/flutter/bin
ここまでは良かったのですが、次のステップで、デバイスを認識させる段階で非常に苦労しました。
Androidのセットアップ
Android Studioのインストール
まず、Andorid Studioをダウンロードします。
Androidデバイスのセットアップ
さらに、この記事を参考にデバイス側の設定を行い、USBケーブルでつないだのですが、なぜか認識しません。
(”flutter doctor”とコマンドで打ち込むと認識しているかどうかわかります。)
調べたところadbというツールが必要らしいのでインストールしました。
が、だめ。
更に調べたところ、下記の操作が必要らしいので実行。
$ sudo apt-get update
$ sudo apt-get install android-sdk-platform-tools-common
参考:https://howtoinstall.co/en/android-sdk-platform-tools-common
これで再起動したところ、デバイスが認識されました。
やれやれ。
Android Emulaterのセットアップ
次にエミュレータを設定します。
VM accelerationなるものを有効にするらしいのですが、ここでも苦戦します。
(参考:https://developer.android.com/studio/run/emulator-acceleration)
まずはkvmをインストールする必要があるのですが、最初に、仮想化できるかどうかを調べます。
$ sudo apt-get install cpu-checker
$ egrep -c '(vmx|svm)' /proc/cpuinfo
出力が 1 以上の場合、仮想化がサポートされています。出力が 0 の場合は、CPU がハードウェア仮想化をサポートしていません。
僕の場合は0でしたが、構わず続けます。(伏線)
$ kvm-ok
このコマンドを打つことで仮想環境が実行可能かどうか調べることができます。
理想の結果は、
INFO: /dev/kvm exists KVM acceleration can be used
らしいのですが、僕の場合は、
INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
でした。
え???????
CPUが非対応?もうどうしようもないじゃん・・・
と落ち込んでいたら意外なところから救いの手が。
Ubuntuの公式ヘルプwikiによると別に問題なく使えるそうで、(https://help.ubuntu.com/community/KVM/Installation)
ならばと、次のコマンドを実行してkvmをインストールします。
$ sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
無事インストールしてめでたしめでたし(伏線②)
公式チュートリアルに戻ります。
Android Studioを開き、AVD ManagerからCreate Virtual Device…を選択。
デバイスを選択し、Nextを押す。さらに4つの候補の中から任意の選択肢を選んだところ、次のエラーが。
Enable VT-x in your BIOS security settings, ensure that your Linux distro has working KVM module.
やっぱり使えないのかよ!!!!!!!
というわけでBIOSを起動し、CPUのvirtual Machine設定を有効にし、再度試したところ無事完了!
やれやれ。
Android Licenceの認証
最後にAndroid Licenceを認証します。
$ flutter doctor --android-licenses
と祈るような気持ちで打ち込んだところ、無情にもエラーが。
Android sdkmanager not found. Update to the latest Android SDK and ensure that the cmdline-tools are installed to resolve this.
このエラーは@ShortArrowさんのQiitaの記事を参考にさせていただき、解決しました。
参考:https://qiita.com/ShortArrow/items/46ca3717384039419605
パスは問題なさそうだったので、Android Studioを開き、Tools > SDK Toolsより、
Android SDK Command – Line tools(latest)にチェックを入れ、インストール。
これでようやく完了しました。
Ubuntuでの開発、本当に一筋縄では行きません。
過去記事です。
よかったらどうぞ。