🐧

Android SDKのインストール on Linux

に公開

Linux上で、Android Studioをインストールせずに、ExpoからAndroid Emulatorを起動させたく、Ubuntu上にAndroid SDKの環境を整えたので、共有します

ゴールは、エミュレータを起動することです

できるだけCUI上で行えるように進めていきます

環境

  • Ubuntu 24.04

最終的なディレクトリ構成

$ tree /opt/android/ -L 2
/opt/android
└── sdk
    ├── build-tools
    ├── cmdline-tools
    ├── emulator
    ├── licenses
    ├── platform-tools
    ├── platforms
    └── system-images

手順

1. commandline-toolsをインストールする

このcommandline-toolsの中に、sdkmanagerというコマンドがあり、今後これを使って色々インストールしたいです

以下のページの下部にある「コマンドライン ツールのみ」のところから、Linux版のzipファイルをダウンロードします
https://developer.android.com/studio

このzipファイルを展開し、以下の位置に保存します

$ tree /opt/android/sdk/cmdline-tools/latest/ -L 2
/opt/android/sdk/cmdline-tools/latest/
├── NOTICE.txt
├── bin
├── lib
└── source.properties

(ダウンロードしたzipファイルを展開し、その中身を/opt/android/sdk/cmdline-tools/latest/に配置してください)

sdkmanagerをshell上から使えるようにするために、PATHを通しておきます
bashを使っているのであれば、.bashrc.bash_profile、zshであれば.zshrc.zshenvなどに以下を記載します

export ANDROID_SDK_ROOT="/opt/android/sdk"
export ANDROID_HOME="$ANDROID_SDK_ROOT"
export PATH="/opt/android/sdk/cmdline-tools/latest/bin:$PATH"  # ここに`sdkmanger`が入っている

書き換えたあと、反映させるためにshellを再起動するなり

exec zsh  # zshの場合
exec bash  # bashの場合

するなりします

2. platform-toolsをインストールする

sdkmanagerがshellから使えるようになったので、これを使って様々なものをインストールしていきます

platform-toolsをインストールします

sdkmanager platform-tools

platform-toolsの中にはadbが含まれていて、adbは実機Androidと通信する際に使います

3. build-toolsをインストールする

sdkmanager "build-tools;34.0.0"

build-toolsは、作ったアプリをビルドするときに必要になります
build-toolsのバージョンは、ここを確認し、最新バージョンをインストールすると良いと思います(記事執筆時点の2025-12-07では34.0.0が最新)

4. platformsをインストールする

sdkmanager "platforms;android-36"

platformsは、エミュレータを動かすときに使います
バージョンは、エミュレートしたいAndroidのAPIレベルを指定することになります

5. emulatorをインストールする

sdkmanager emulator

emulatorはその名の通り、エミュレータを起動するときに使います

6. system-imagesをインストールする

使いたいAndroidのapi_levelarchx86_64x86など)、variantgoogle_apisを指定しておけば通常の範囲ではok)を確認し、以下のコマンドでインストールする

sdkmanager "system-images;android-<api_level>;<variant>;<arch>"
# 例
sdkmanager "system-images;android-36;google_apis;x86_64"

7. 仮想デバイスを作成する

avdmanager create avd -n {{仮想デバイスの名前}} -d {{デバイス定義}} -k "system-images;android-{{api_level}};{{variant}};{{arch}}"
# 例
avdmanager create avd -n pixel_7_api34 -d pixel_7 -k "system-images;android-34;google_apis;x86_64"

{{デバイス定義}}は、以下のコマンドを使って候補を取得できる

$ avdmanager list device

Available devices definitions:
id: 0 or "automotive_1024p_landscape"
    Name: Automotive (1024p landscape)
    OEM : Google
    Tag : android-automotive-playstore
---------
...
---------
id: 38 or "pixel_7"
    Name: Pixel 7
    OEM : Google
---------
...

8. エミュレータを起動する

emulator -avd {{仮想デバイスの名前}}

トラブルシューティング

出会ったエラーを記載していきます

requires hardware accelerationと言われる

x86_64 emulation currently requires hardware acceleration!

kvmを追加します

sudo apt install qemu-kvm
sudo modprobe kvm_amd  # PCのCPUがAMDの場合
sudo modprobe kvm_intel  # PCのCPUがIntelの場合

modprobeがうまく動かないときは、BIOSでCPUのSVMの設定がEnableになっているかを確認します
僕の場合、Disableになっていてうまく動きませんでした

仮想デバイスと使っているPCのアーキテクチャが違うとき

Avd's CPU Architecture 'arm64' is not supported by the QEMU2 emulator on x86_64 host. System image must match the host architecture.

というメッセージが出る
諦めておとなしく使っているPCのアーキテクチャを使いました

Discussion