これは Android タブレット向けのアプリを Chromebook 一台で開発したいという野望から出た試みです。
https://developer.android.com/studio にアクセスして、 かなり下の方にある Command line tools only のセクションまでスクロールする。 そこから Linux 用のそれ( commandlinetools-linux-xxx.zip)をダウンロードする。
それを unzip して、~/.local/Android/Sdk/cmdline-tools/latest に配置する。
~/.bashrc に以下を追記:
export ANDROID_HOME=$HOME/.local/Android/Sdk
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH
この cmdline-tools/latest というパスに配置しないと面倒なことになる。 面倒といっても多分 sdk-root をなんらかの方法で追加で指定すればよいだけだとは思う。 試してはいない。
$ source ~/.bashrc
などとして設定をロードしたら which sdkmanager で sdkmanager コマンドが有効なことを確認した上で実行。
$ sdkmanager "build-tools;35.0.0"
ここでは 35 を指定しているが、 使いたいバージョンを指定する必要がある。
JDK 17 を入れます:
$ sudo apt install openjdk-17-jdk-headless
作動確認:
$ java -version
openjdk version "17.0.15" 2025-04-15
OpenJDK Runtime Environment (build 17.0.15+6-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.15+6-Debian-1deb12u1, mixed mode, sharing)
あとは普通に gradlew すれば Android のプロジェクトをビルドできます。
./gradlew assembleDebug
ARM CPU の Chromebook ではここでエラーになり apk がビルドできない。
次のようなエラーメッセージが出たが、色々試していたので、 どんな状況でなんのエラーが出たかよくわからん!
AAPT2 aapt2-8.11.1-12782657-linux Daemon #0: Daemon startup failed
とか
ERROR: AAPT: unknown option '--source-path'
この問題の解決に こちら Android端末上でAndroidアプリをビルドする https://zenn.dev/turtlekazu/articles/e36ea6ab05efbb や こちら Is there a way to tell gradle always to use a custom binary of aapt2? https://stackoverflow.com/questions/68814649/is-there-a-way-to-tell-gradle-always-to-use-a-custom-binary-of-aapt2 を参考にしたところ解決できました。
解決手順としては...
なお、こちら Android端末上でAndroidアプリをビルドする https://zenn.dev/turtlekazu/articles/e36ea6ab05efbb に説明があるような ~/.gradle/caches 以下にある aapt2-xxx-linux.jar の中の aapt2 を入れ替えるという処置はしなくてもビルド成功しました。ただし、これがたまたま今ビルドしようとしているプロジェクトでは不要だっただけなのか、そうでないのかまでは良くわかりません。 参考にしたページでは、 ARM CPU の Android 上で Android アプリをビルドするときの対策として書かれていたと記憶しているが、ここでは ARM CPU の Chromebook の Linux(crostine) で Android アプリをビルドしているので、その辺の事情の違いも関係があったのかもしれない(わからない)。
ともかく、この環境・このプロジェクトにおいてはこれで apk をビルドすることができました。
この警告は出ます:
WARNING: The option setting 'android.aapt2FromMavenOverride=/foo/bar/build-tools/aapt2' is experimental.
この実験的な機能がなくならないことを祈ろう。
次はビルドした apk をインストールするために adb コマンドを使う:
おっとその前に Chromebook 本体設定で Enabled ADB Debugging をONにしておかなければならない。 この辺りの過去のポストを参照: Chromebook に Androidアプリをサイドロードする、非デベロッパーモード
$ adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
emulator-5554 offline
このとき Chromebook 側でダイアログが出るので 許可(Allow) する。 もう一度実行すると、認識された。
$ adb devices
List of devices attached
emulator-5554 device
あとは adb install foo.apk すればアプリをこの Chromebook にインストールできる。
同じように設定を進めて、このタスクを実行:
./gradlew assembleDebug
すると、 app/build/outputs/apk/debug/app-debug.apk に apk ができている(もちろんプロジェクトの設定とかによって異なるパスに apk ができたりするとは思うが...)
あとはこれで Chromebook 本体にアプリをインストールできました。
$ adb install app/build/outputs/apk/debug/app-debug.apk
これで Chromebook の crostini でコマンドラインベースで開発してそのまま Chromebook で即座に作動確認できる環境ができた。
もちろん、Android Studio が使えるだけのスペックのあるマシンがあればそれでもかまわない、ただし Android Studio は Intel CPU の Chromebook に限る! ARM CPU の Chromebook の場合は コマンドラインツールに頼るほかない。
ペンを使うアプリをつくっているので、Chromebook Table 一台開発と作動確認が完結するのは助かる。 一方で、 開発環境整えるだけでこれだけ苦労するのはなんとも・・・ Google が Firebase Studio を出してきたのも時代の流れ的に必然なのかもしれない。
Firebase Studio:
ブラウザから、AI を取り入れたフルスタック アプリのプロトタイプ作成、構築、製品化を迅速かつ効率的に行います。