はじめに
タイトル通り、WSL2にAndroid Studioを入れて、エミュレーターでサンプルアプリ(Hello Androidが表示されるだけのやつ)を起動した時の手順を備忘として記事にしました。
この手の記事は検索したらそれなりに見つかるのですが、様々なもののバージョン差異などで書いてあるとおりに実施してみてもエラーになることが多いです。
今回もトライ&エラーで検索しまくったので、うまくできた手順を自分用メモとして本記事を書きました。
環境
OS:Windows 11 Pro
バージョン:24H2(26100.3476)
プロセッサ:i5-8265U CPU @ 1.60GHz 1.80 GHz
実装 RAM:16.0 GB
WSLのUbuntuをインストールする
Windows11なので仮想環境関連の設定はされているはず!ということでいきなりインストールしてみました。
> wsl --install Ubuntu-24.04
ダウンロード中: Ubuntu 24.04 LTS
インストール中: Ubuntu 24.04 LTS
ディストリビューションが正常にインストールされました。'wsl.exe -d Ubuntu-24.04' を使用して起動できます
個人的に、ぱっと見でUbuntuのバージョンが分かると嬉しいと思ったので、ディストリビューションを指定してインストールしています。
※執筆時点ではwsl --install
でもUbuntu-24.04
がインストールされました。
ここは特にエラーも出ず、無事インストールされました。
Ubuntuの初期設定をする
起動するとデフォルトでログインするユーザーの設定を促されるので、任意のユーザー名と、パスワードを2回入力してユーザーを作成しました。
> wsl.exe -d Ubuntu-24.04
Provisioning the new WSL instance Ubuntu-24.04
This might take a while...
Create a default Unix user account: androstd
New password:
Retype new password:
passwd: password updated successfully
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Android studioインストール前の事前準備を実施する
まずはjdkが無いとダメという記事を見かけたのでインストールしました。
sudo apt update
sudo apt upgrade
sudo apt install openjdk-21-jdk
続いて公式に書かれていた 64 ビットマシンに必要なライブラリをインストールしました。
$ sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libc6:i386
E: Unable to locate package libncurses5:i386
E: Unable to locate package libstdc++6:i386
E: Unable to locate package libbz2-1.0:i386
E: Couldn't find any package by glob 'libbz2-1.0'
ここでエラー発生。
エラーメッセージで検索したところ、i386パッケージを入れるためには事前準備が必要とのことだったので実行しました。
sudo dpkg --add-architecture i386
sudo apt update
再度インストール実行!!
$ sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package libncurses5:i386
が、またもエラーが発生して、一つだけインストールできませんでした。
こちらは調べるのに苦労しましたが、どうやらlibncurses5
が古いらしく、「libncurses6
で試してみては?」という情報を得たので試してみました。
sudo apt install libncurses6:i386
今度は無事にインストールできました。公式も書き直しておいて欲しい…。
Android studioをインストールする
いくつか方法があるようなのですが、自分はWindowsでLinux用のAndroid Studio パッケージをダウンロードしました。(単に手っ取り早かっただけ)
Ubuntuのホームディレクトリにコピーしたら権限が777
になったので権限変更しました。
cp /mnt/c/Users/{username}/Downloads/android-studio-2024.3.2.15-linux.tar.gz .
chmod 644 android-studio-2024.3.2.15-linux.tar.gz
解凍してできたディレクトリを/opt
配下に移動後、セットアップ処理を実行しました。
tar -zxvf android-studio-2024.3.2.15-linux.tar.gz
sudo mv android-studio /opt/
sh /opt/android-studio/bin/studio.sh
セットアップウイザードが表示されるのでNext連打で進めます。
「License Agreement」はAcceptを選択しないとNextが押せないのでご注意ください。
サンプルアプリを起動してみる
「Welcome to Android Studio」という画面が表示されるので「New Project」を押してプロジェクトを作成してみました。
New Projectダイアログで「Empty Activity」を選択してNext押下、次画面はデフォルトのままFinish押下でしばらく待ちます。
作業している気配がなくなったらShift+F10押下でアプリを起動してみました。
が、以下のエラーメッセージがpop upで表示されて終了しました。
Error running 'app'
/dev/kvm device: permission denied.
Grant current user access to /dev/kvm
ということで、この記事を参考にして権限を追加しました。
$ sudo groupadd -r kvm
groupadd: group 'kvm' already exists
$ sudo gpasswd -a $USER kvm
Adding user andro to group kvm
$ sudo vim /etc/wsl.conf
#[boot]配下に以下を追加
command = /bin/bash -c 'chown root:kvm /dev/kvm && chmod 660 /dev/kvm'
Android studioを一度終了してから再度実行してみました。
今度は以下のエラーメッセージがpop upで表示されて終了しました。
Error running 'app'
The emulator process for AVD Medium_Phone_API_36 has terminated.
このエラーは検索しても有益な情報が見つけられず「問題が起きたらログを見ろ!」という初心に立ち返ってログを確認することにしました。
しかし、ログがどこに出力されているかが分からないという別の問題に直面……。
検索してもMacならここ、Windowsならここ、という記事しか見つけられず、Linuxだとどこに?となり、結局AndroidStudioが出力するログファイル名のidea.log
をfind
で検索するという力技で発見しました。
Linuxの場合は ~/.cache/Google/AndroidStudio2024.3/log/idea.log でした。
※AndroidStudio2024.3
部分はバージョンによって変わると思うのでご注意ください。
発掘したログを眺めていったところ、怪しげなメッセージが出力されているのを発見!!
error while loading shared libraries: libpulse.so.0: cannot open shared object file: No such file or directory
apt list libpulse*
を実行したらlibpulse0
が出てきたのでインストールしました。
sudo apt install libpulse0
Android studioを一度終了してから再々度実行してたところ、ついに!、エミュレーターが起動しました!!
しかし遅い…。
しかもこんなダイアログが出て来たし……。
System UI isn't responding
× Close app
○ Wait
とりあえずWait
を押してしばらく待ったら、無事に「Hello Android」が表示されました。
実行コマンドまとめ
Ubuntuインストール
wsl --install Ubuntu-24.04
wsl.exe -d Ubuntu-24.04 --cd ~
事前準備
sudo apt update
sudo apt upgrade
sudo apt install openjdk-21-jdk
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 libncurses6:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
sudo groupadd -r kvm
sudo gpasswd -a $USER kvm
sudo vim /etc/wsl.conf
#[boot]配下に以下を追加
command = /bin/bash -c 'chown root:kvm /dev/kvm && chmod 660 /dev/kvm'
sudo apt install libpulse0
AndroidStudioインストール
cp /mnt/c/Users/{username}/Downloads/android-studio-2024.3.2.15-linux.tar.gz .
chmod 644 android-studio-2024.3.2.15-linux.tar.gz
tar -zxvf android-studio-2024.3.2.15-linux.tar.gz
sudo mv android-studio /opt/
sh /opt/android-studio/bin/studio.sh
参考にした記事