Flutterでアンドロイドアプリを開発する準備

アフィリエイト広告を利用しています

このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です

アンドロイドアプリは、Windows でも mac でも開発することが可能です。
準備の手順も基本的に同じです。

公式のインストールマニュアル

https://flutter.dev/

ヘッダー内 右上「Get started」をクリック

「Windows」または「macOS」をクリック

ここにやり方が書かれていますのでこの通りやっていきます。

アンドロイドアプリ開発向けのセットアップ

Android Studio をインストール

https://developer.android.com/studio

普通にインストールすればOKです。
インストールウィザードの内容はデフォルトのままでOKです。

既にインストール済みの場合でも、バージョンが古かったりするとアップデートする必要があります。
その場合は、flutter doctor にいろいろ書かれていると思います。

アップデートは難しい?

今回、Android Studio は既にインストールしていて古かったので色々トラブルが発生しました。
その中でも見出しの「Unable to find bundled Java version.」だけは解決できませんでした。

色々やったのですが、結果としてはAndroid Studioを跡形もなく削除してから、新規でインストールしなおす方法です。

https://www.imymac.jp/powermymac/uninstall-android-studio-mac.html

こちらを参考にパート1の方法で完全削除です。

Android Studio を起動しプロジェクトを作成

Android Studioを起動します。

新規でプロジェクトを作成します。
名前などは何でもよく、後で削除してもOKです。

初めてのプロジェクトを作成する過程で必要なものがいろいろインストールされます。
完了までしばらく時間がかかります。

最初、Android Studio を完全削除したのですがそれでは足りなかったようで、昔に入れてた jdk もすべて削除して、Android Studio も削除して、vi ~/.bash_profile からも Android 絡み $PATH 指定は除去して、そのうえで Android Studio をインストールし直しました。

jdk の削除は次の通りです。

/usr/libexec/java_home -V

sudo rm -rf ▲で出てくるパスのパッケージの区切り階層まで上がったところ

flutter doctor

ここまで出来たら flutter doctor で確認します。

flutter doctor

黄色を無くしていきます。

cmdline-tools component is missing

Android Studio を起動

メニューから Android Studio > Preferences > Appearance & Behavior > System Settings > Android SDK > SDK Tools

「Android SDK Command-line Tools(latest) Status」

チェックを入れて Apply > OK > Finish > OK

Android license status unknown.

Android のライセンスに同意していないので同意します。

flutter doctor --android-licenses

Unable to find bundled Java version.

かなり調査してかなり悩んでかなり時間を費やしたのですが、結果的には次のとおりです。

jbr を jre としてコピーします。(jbrを残さずにリネームでも良いと思います、未確認)

cp -R /Applications/Android\ Studio.app/Contents/jbr /Applications/Android\ Studio.app/Contents/jre

https://github.com/flutter/flutter/issues/113775

ヒントとなったのはこちらで、FlutterはAndroid Studioにバンドルされた jbr (オープンソース版 jdk)をサポートしていないようです。

flutter doctor

ということで flutter doctor で確認します。

flutter doctor

完璧です!