Google Chrome は、ARM版を配布していないので、Chromiumで代用。
$ uname -m
aarch64
$ cd $HOME
$ sudo apt install clang cmake ninja-build pkg-config libgtk-3-dev build-essential chromium
$ git clone https://github.com/flutter/flutter.git -b stable
$ echo PATH='$PATH:$HOME/flutter/bin' >> ~/.profile
$ echo 'export CHROME_EXECUTABLE=$(which chromium)' >> ~/.bashrc
$ source .profile
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.6, on Debian GNU/Linux 12 (bookworm) 5.15.108-18910-gab0e1cb584e1, locale ja_JP.UTF-8)
[✗] 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/linux#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.
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] Connected device (2 available)
[✓] Network resources
! Doctor found issues in 2 categories.
ここまでで、WebとLinuxデスクトップはオッケイになった。Androidも有効にするには以下の手順。
なお、通常はAndroid Studioをインストールして、そこからAndroid SDKを入れるのですが、Android Studioのドキュメントには以下の記載があります。
注: ARM ベースの CPU を搭載した Linux マシンは現在サポートされていません。
なので、手動で cmdline-tools をインストールして調整する必要があります。
で、cmdline-toolsを使うためには java (android使うためにはどのみち必要)が必要。なので、先にそちらをやります。
$ sudo apt install -y zip
$ curl -s "https://get.sdkman.io" | bash
$ source $HOME/.sdkman/bin/sdkman-init.sh
$ sdk version
SDKMAN!
script: 5.18.2
native: 0.3.2
次に java (java 17) をインストール。
$ sdk install java
$ java --version
openjdk 17.0.8 2023-07-18
OpenJDK Runtime Environment Temurin-17.0.8+7 (build 17.0.8+7)
OpenJDK 64-Bit Server VM Temurin-17.0.8+7 (build 17.0.8+7, mixed mode, sharing)
次に、cmdline-tools をダウンロード。
https://developer.android.com/studio
の下の方にダウンロードリンクがあるので、そこから落として解凍。
$ cd $HOME
$ mkdir android_sdk
$ mv commandlinetools-linux-9477386_latest.zip android_sdk
$ cd android_sdk
$ unzip commandlinetools-linux-9477386_latest.zip
$ cd cmdline-tools
$ mkdir latest
$ mv *.txt *.properties bin lib latest
$ echo 'export ANDROID_SDK_HOME=/home/dev/android_sdk/cmdline-tools' >> $HOME/.bashrc
$ echo 'export ANDROID_SDK=$ANDROID_SDK_HOME/latest' >> $HOME/.bashrc
$ echo 'PATH=$PATH:$ANDROID_SDK/bin' >> $HOME/.bashrc
$ source .profile
$ sdkmanager --version
9.0
必要なものを sdkmanager でインストール。
$ sdkmanager --install platform-tools
$ sdkmanager --install "build-tools;33.0.2"
$ sdkmanager --install "platforms;android-33"
$ sdkmanager --install "system-images;android-21;default;arm64-v8a"
あとは、flutter に android_sdk の場所を教えておく。
$ flutter config --android-sdk $HOME/android_sdk
その後に doctor する。
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.6, on Debian GNU/Linux 12 (bookworm) 5.15.108-18910-gab0e1cb584e1, locale ja_JP.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[☠] Connected device (the doctor check crashed)
✗ Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know about this issue at
https://github.com/flutter/flutter/issues.
✗ Exception: Unable to run "adb", check your Android SDK installation and ANDROID_SDK_ROOT environment variable: $HOME/android_sdk/platform-tools/adb
[✓] Network resources
! Doctor found issues in 2 categories.
ここまで来たけど、結局どうやっても、adb関連のエラーが取れなかった・・・・。なので、Webとデスクトップが出来る状況というところでギブアップ。
よく見てみると
$ ./adb
-bash: ./adb: バイナリファイルを実行できません: 実行形式エラー
$ file ./adb
adb: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, not stripped
ARMのバイナリじゃないじゃん! そりゃ無理よ。
一応、以下のリポジトリを使わせてもらって、ソースビルドすれば ARM の adb を作れる模様だが、、。 もう面倒なのでいいやってなりました。
https://github.com/bonnyfone/adb-arm
最後に以下のようにして終わりとする。
$ flutter config --android-sdk ""
$ flutter config --no-enable-android
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.10.6, on Debian GNU/Linux 12 (bookworm) 5.15.108-18910-gab0e1cb584e1, locale ja_JP.UTF-8)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[!] Flutter IDE Support (No supported IDEs installed)
[✓] Connected device (2 available)
[✓] Network resources
! Doctor found issues in 1 category.