Skip to content

Instantly share code, notes, and snippets.

@devlights
Last active July 22, 2023 16:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save devlights/329623bd4f0923cba9a4f9d6dd9fbe1e to your computer and use it in GitHub Desktop.
Save devlights/329623bd4f0923cba9a4f9d6dd9fbe1e to your computer and use it in GitHub Desktop.
ChromebookのLinuxにFlutterをインストール (ARM版) (結局Androidの設定はうまくいかず・・・)

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment