たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 11180
目次
本題
開発環境をローカルに入れるのは、、、
WSL2
WSL を入れる
Wsl/CallMsi/Install/REGDB_E_CLASSNOTREG エラー
Ubuntu がインストールされる
WSL よく使うコマンド
インストールした Linux の状態
WSL 終了
Cドライブを開けたいので別のドライブに入れたい
引越し準備
引っ越し先
root ユーザーでログインしているのをやめたい
エクスプローラーで Linux のドライブの中身が見れる
デスクトップアプリを入れてみる
Firefox
どういう仕組みでスタートメニューに登録されるの?
Android Studio
ダウンロードする
curl でダウンロード
インストール
毎回 sh コマンドを叩くのはめんどい
WSL2 の中にある Android Studio から実機を繋ぎたい
Windows 側の用意
WSL2 側の用意
実機で動作確認
2回目以降は?
WSL2 の環境を削除したい
おわりに
おわりに2
どうもこんばんわ。
リトルプリンセスGO! 攻略しました。かわいいいい。特にシリアスとかもないのでひたすらかわいかったです。
えちえちも大体網羅されてていい!!!
かわいい、かくかくしかじかだ
><
なみだ目だ、かわいい、ちなみに年上ヒロイン
りっかちゃん!!
ここのお話すき、かわいい。最後の方の話、素直でよかった~。
ミーナさん!!まじで顔がいい。
この顔すき
!?!?!?!?
いい!!神ゲーです
主人公冥利につきてそう
ひたすらかわいいのでおすすめです!あまあまだった
ミーナさんのえちえちシーンとくによかった...
ASUS ROG Ally
を買った、えちえちゲームようです。Surface
壊れたんで。
(なので別にゲーミングな性能は必要なく、ただ大手のUMPC
だから買ったってのがデカい)
ゲーミングな性能を持っているので、適当にAndroid Studio
を入れてみたら、なんか普通に動いて、メモリこそ足りないものの、結構動いてた。はやい。
先述の通りメモリは足りないし、キーボードないんだけど、それはそうとビルド環境が持ち出せるのはなんかいいなあって。
(いやまあ使うか分からんのに512GB
のストレージを無駄にしていいのかは怪しくなってきた。)
でもこれ、えちえちゲーム専用機にしたいからな~~
Android Studio
やらこのブログの開発環境
やらいれたらローカルの環境がぐちゃぐちゃになってしまいそう。。
あと、入れてもいいんだけど容量が足りなくなった時に簡単に消せるようにしたい。
多機能なゆえにAndroid Studio
を完全にアンインストールするのはなんか面倒くさい記憶がある。
なんかアップデートしたのに古いバージョンのファイルが残ってたりで、気になる人は気になりそう。
(↑なぜか残り続けるフォルダたち。古参ぶるな)
こんなこと言ってますが、今使ってるデスクトップは特に気にせずしています。
なのでAndroid Studio / Intellij IDEA
が作ったGradle
のキャッシュがホームディレクトリにあるし(~/.gradle
)、
npm
のグローバルインストールや、pnpm
のシンボリックリンクだったりしてローカルを汚しまくってます。手遅れ。
Windows Subsystem for Linux
。
Windows
でLinux
の仮想マシンを動かせる。VMware
みたいなあれ。
MS
が公式で出している方法。これでLinux
にしか無いソフトを使うことが出来ます!!!。
たまによくLinux / macOS
のバイナリはあってWindows
だけ無いのを見かける、Ansible
とかRedis
とか。
(どっちも使ったこと無いからWindows
で困ってないんだけどさ、、)
ただ、今回はLinux
の仮想マシンが欲しい訳じゃなく、
どっちかというと開発環境をその仮想マシンに閉じ込めてすぐ削除できるようにしたい。
ちなみにfor Android
の方は使ったことないままサービス終了です。
最近?のWSL
はLinux
のGUI
アプリを動かすことができるようになったそうで、WSL2
のLinux
環境にAndroid Studio
や他の開発環境を入れればローカルは綺麗なまま、すぐ削除もできて素敵なのでは!??!
あと、Linux
のGUI
アプリを動かすドキュメント、そんなに難しく無さそう。
https://learn.microsoft.com/ja-jp/windows/wsl/tutorials/gui-apps
アイコンのペンギンがかわいい。
一度も入れたことがないので、ドキュメント通り。PowerShell
を管理者権限で起動して、以下のコマンドを叩くだけ。
記憶が正しければ昔はPro エディションの Windows
が必要とかだったような。
wsl --install
(もし昔にWSL
を使っていた場合はwsl --update
と叩くと更新できます)
参考にしました、ありざいす
https://qiita.com/mfunaki/items/615e4bd5b356230164c1
一回試した時はなんなくインストールできたのに、クリーンインストールした後もう一回試そうとしたらこのエラーで出来なくなってしまった。
というわけでGitHub
のリリースからダウンロードして入れ直すのを試します。
https://github.com/microsoft/WSL/releases
既に最新版が入っているが、うまく行かないのでWSL
自体のインストールから試す。
msix
の方は失敗したので(同じ ID を持つものの、コンテンツが異なるため、パッケージ...
)、
msi
の方をダウンロードして入れた。Intel / AMD CPU
の方はx64
って書いてある方を、Snapdragon CPU
の方はarm64
って書いてある方でいいはず?
ねんのため再起動してみる。
これで晴れてwsl --install
ができるようになりました。やったぜ
デフォルトのディストリビューションはUbuntu
になるそう。Linux
はあんまり触ったことなくDebian
系じゃないとわからないので助かった。
(まぁそれすらもよく知らない、ラズパイがこれだった。)
wsl --install
が終わると再起動しろって言われたので一旦再起動する。
再起動したらUbuntu
がスタートに表示されたので開いてみる。
そしたら処理が進んで、Linux
のユーザー作成に進みました。スクショ取りそこねました。
インストールできました!!!
2回目以降はスタートに表示されるUbuntu
を押すことで起動できます。
スタートメニューからUbuntu
を起動できる時代かあ。
VMware Player
で立ち上がるのを見守ってたあの頃
ちなみに自作PC
の人が使うUbuntu
とは違うと思いますがこれはデスクトップ環境が無いUbuntu
だからですね。ラズパイを画面無しで使ってる気分。
https://learn.microsoft.com/ja-jp/windows/wsl/basic-commands
これはWindows
側で叩くコマンドです。書くまでもないか。
wsl -l -v
起動しているかとか。exit
で抜けただけだと動きっぱなしになってる?
wsl --shutdown
参考にしました、ありざいす
Cドライブ
は開けておきたい。ので試しにSD カード
にWSL2
の環境を移動させたい。
しかし、直接SD カード
に入れることは出来ないそうで、代わりにCドライブ
に入れたものを移動させる手段を皆やっているらしい。
まずはディストリビューション名を調べます。
wsl --list --verbose
コマンドで見れます。
NAME
の欄にあるものです。今回はUbuntu
(そのままだった)ですね。
次にエクスポートします。
wsl --export {名前} {ファイル名}
。今回の例だとwsl --export Ubuntu ubuntu.tar
です。今いるフォルダに出来ます。
エクスポートしたので、次は消します。
あとでエクスポートしたものをインポートするので消して良いはず。wsl --unregister {名前}
でできます。
今回の例ではwsl --unregister Ubuntu
ですね。
はい。消したので、wsl --list --verbose
を叩いても何も無いよ!って返ってきます。
エクスポートしたファイルがどこに有るかですが、今のターミナルのパスですね。
馴染みがない場合は、pwd
コマンドを叩くと今のパスが分かるので、エクスプローラーでそのパスへ移動するとubuntu.tar
があるはず。
まずは引っ越し先のドライブでPowerShell
を開きます。
cd
で移動してもいいですし、エクスプローラーで開いて空いてる部分を右クリックするとターミナルで開く
があるので押しても良いです。多分PowerShell
だと思う。
ターミナルで引っ越し先に移動したら、次に以下のコマンドを叩きます。
wsl --import {名前} {フォルダ} {tarファイルのパス}
。今回の例ではwsl --import Ubuntu wsl C\Users\takusan23\ubuntu.tar
ですね。wsl
フォルダに展開される感じです。
これでwsl
が戻ってきたはず!
wsl -d {名前}
コマンドを叩けば起動するはず。今回の例ではwsl -d Ubuntu
です。
多分スタートメニューのUbuntu
から起動できています。
起動してみるとわかるのですが、root
ユーザーになっています。大いなる力には大いなる責任が伴う のあれ。
これは怖いのでできれば初期設定時に作ったLinux
ユーザーに戻したいところです。毎回起動したら# su takusan23
するのも面倒だし。
というわけで戻します。テキストエディタにvim
を使いますが何でも良いです(戦争回避)
root
ユーザーで叩く必要があるのかは不明ですがそんな気がします。
このコマンドでテキストファイルを開きます。vim /etc/wsl.conf
。私の場合は既にありました。
そしたらvim
が開くので、i
を押して編集モードにし、一番最後の行へ移動し、2行書き足します。
[user]
default={ユーザー名}
ユーザー名はUbuntu
初期設定時のあれです。
私の場合はdefault=takusan23
です。
vim
を使っていればEsc
キーを押し、:wq
と入力しエンターを押すことで保存しターミナルへ戻ることが出来ます。
これで一旦閉じて、もう一回スタートメニューからUbuntu
を押せば、みごと初期設定時のユーザーで入れるようになりました。
すごい便利、仮想マシンじゃ出来ないんじゃないかなこれ
手始めにブラウザを入れてみる。ガイドがあったのでそれに従う。 https://support.mozilla.org/ja/kb/install-firefox-linux#
Ubuntu
はDebian
系列なので、.deb パッケージ
のやつをやってみる。
が、apt
経由で普通に入れることが出来そう。
順番通りにコマンドを叩けば良いはず。
sudo install -d -m 0755 /etc/apt/keyrings
sudo apt-get install wget
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
↑wget
ない場合は一行目も叩く。
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla
↑これはまとめて貼り付ける
sudo apt-get update && sudo apt-get install firefox
↑YesかNo
か聞かれるのでy
でエンター。
終わったら、firefox
コマンドで起動できます!!
たしかにデスクトップLinux
アプリがWindows
に表示されている...。謎技術すぎる。
firefox
また、スタートメニューにもWSL2 Ubuntu
の中にあるFirefox
のショートカットが表示されます。
まじで統合されまくっててすごい。
ただし、日本語フォントがないので入れないといけない。
https://www.reddit.com/r/bashonubuntuonwindows/comments/q5a2lv/
デスクトップエントリと言う機能がLinux
にはあるらしく?、デスクトップ環境ありの Ubuntu
(自作PCの人達が使ってる方の Ubuntu)だとアプリ一覧に表示させるのに使われているそう。
そしてWSL2
でもデスクトップエントリを認識してLinux GUI アプリ
のショートカットを作ってくれる、、、らしい。
本題!!!!
Ubuntu
にAndroid Studio
を入れる方法ですが、本家通りでいいはず。
https://developer.android.com/studio/install#linux
もし↑のFirefox
を既に入れている場合、Android Studio
のダウンロードページがLinux
用に切り替わるはず。
Firefox
入れてない場合は、curl
でダウンロードするなり必要。
ただAndroid Studio
のダウンロードリンクを調べておく必要があります。調べたらcurl
で落とせば。
mkdir ~/Downloads
cd ~/Downloads
curl -OL {ここにダウンロードリンク}
このコマンドだと適当にホームディレクトリにDownloads
フォルダを作ってそこにいれるようにしています。
ダウンロードできたら解凍します。sudo
なのでパスワードいるかも。
cd /usr/local/
sudo tar zxvf ~/Downloads/android-studio-2024.2.1.12-linux.tar.gz
解凍がおわると、android-studio
フォルダが出来ているので、android-studio
の中のbin
の中にあるstudio.sh
ってシェルスクリプトがあるのでそれを実行します。
2回目以降の起動もこの1行を叩けば良いです。
sh /usr/local/android-studio/bin/studio.sh
いや嘘偽りなくLinux GUI アプリ
が動いてるんだが、
すごい、謎すぎる。
セットアップを進めます。
がんばれ~。ネタバレするとエミュレータはちょっと試した限り動かないっぽいので(おま環かも)、
Custom
で進めて、Android Virtual Device
のチェックを外しても良いかもしれません。
適当にプロジェクトを作ってみました!
ビルドは試せてませんがとりあえずは動いてそうです!!!
すげ~~
Firefox (Ubuntu)
みたいにスタートメニューにおいて欲しい。
デスクトップエントリと呼ばれるファイルを作ればよいのですが、まず公式で案内されている方法があるので見ます。
https://developer.android.com/studio/install?hl=ja#linux
ひっそりと、ツールバー > Tools > Create Desktop Entry
を実行するとデスクトップエントリが作れるよって書いてあるんですが、
WSL2
だからなのかデスクトップ環境が無いものだと勘違いされたのか項目がありません。
ので、自分で書きます。
まずは以下のコマンドを叩いてandroid-studio.desktop
を作ります。vim
を使いますが何でも良いです。(戦争回避)
cd /usr/share/applications/
sudo vim android-studio.desktop
そして以下を貼り付けます。
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Android Studio
Comment=Android Studio
Exec=/usr/local/android-studio/bin/studio.sh
Icon=/usr/local/android-studio/bin/studio.svg
(↓のスクショは若干間違ってて、↑の文字列が正解です。)
書けたら保存してターミナルに戻ります。
Vim
ならEsc
キーを押し:wq
でエンター。
これでスタートメニューに「Android Studio
(Ubuntu)」が表示されるようになり、押すとWSL2
上でAndroid Studio
が起動できます!!
もしアイコンがペンギンのままで、反映されてなかったらWindows
を再起動してみてください。
ターミナルから起動するときと比べて、WSL2
のUbuntu
が起動していない場合はちょっとだけ時間かかります。
もちろんスタートメニューから押しても起動します。すごい。
ちなみにエミュレータは1時間くらい戦ったけどダメそうでした。またやってみてもいいけど実機のほうが楽だし。。
WSL2
でUSB
デバイスと接続する方法がちゃんとあります。
https://learn.microsoft.com/ja-jp/windows/wsl/connect-usb
まずはここから.msi
のインストーラーをダウンロードし、ホストのWindows
環境へインストールします。
https://github.com/dorssel/usbipd-win/releases
次に端末を繋ぎます。
UMPC
だともうポートが埋まってしまう。。。
そしたらWSL2
のUbuntu
を起動しておきます。ここから先は多分WSL2
を起動しておく必要があると思います。
次に新しくPowerShell
を管理者権限で開き、以下のコマンドを叩きます。
usbipd list
出てきた一覧から、WSL2
で使いたいUSB
デバイスを探します。
以下例。
Connected:
BUSID VID:PID DEVICE
3-1 xxxx:xxxx Pixel 8 Pro
今回はPixel 8 Pro
なので3-1
ですね。ここは皆さん違うと思う。学校のクラスみたい
BUSID
の部分をそれぞれ以下のコマンド置き換えて、叩きます。私の場合は3-1
ですね。
usbipd bind --busid {BUSID}
usbipd attach --wsl --busid {BUSID}
次にWSL2
のUbuntu
のターミナルへ切り替え、ADB
を使う準備をします。
おそらくこのままadb
コマンドを叩いても権限が足りなくてAccess denied (insufficient permissions)
みたいなエラーが出ちゃうんじゃないかなと思います。
ちなみにADB
の所在は~/Android/Sdk/platform-tools/
にadb
ってあるはず。
01-28 02:16:11.932 510 510 E adb : usb_libusb.cpp:598 failed to open device: Access denied (insufficient permissions)
01-28 02:16:11.932 510 510 I adb : transport.cpp:1153 39171FDJG005SC: connection terminated: failed to open device: Access denied (insufficient permissions)
* failed to start daemon
adb: failed to check server version: cannot connect to daemon
というわけで公式を見ます。
どうやらユーザーの操作
となんかapt
から入れないといけない?
https://developer.android.com/studio/run/device#setting-up
というわけで、公式通りに以下の2つ叩きます。
ADB
のAccess denied (insufficient permissions)
エラーは2行目のapt
パッケージをインストールしたら直りました。再起動が必要かもしれません。
sudo usermod -aG plugdev $LOGNAME
apt-get install android-sdk-platform-tools-common
あとはもう一回adb
コマンドを叩いてみる。
cd ~/Android/Sdk/platform-tools/
./adb devices
これで認識される(もしくはAndroid
端末側に許可ダイアログが表示される)はずです!!
後はWSL2
上のAndroid Studio
を起動します。
スタートメニューでも良いですし、以下のコマンドを叩いても良いです。
sh /usr/local/android-studio/bin/studio.sh
どうでしょうか?
Android Studio
の実行で実機が選べるようになってますか?ビルドもできるはず
ちなみに使い終わったら引っこ抜けばいいらしい。
だめな場合はUSB ハブ
を使わないとかしてみてください。
思ったよりもずっと速い。
仮想マシンとは思えない。
もう一回接続したい場合は、端末を繋いで、WSL2
のUbuntu
を起動した後、Windows
のPowerShell
で以下のコマンドを叩くだけでいいはず。これでWSL2
側に認識されます。
usbipd attach --wsl --busid {BUSID}
あとはWSL2
上のUbuntu
でAndroid Studio
を起動すれば良い。
Windows
上のPowerShell
で以下のコマンドを叩きます。
wsl -l
そしたら消したいLinux
のディストリビューションの名前が出てくるので、消したい名前を覚えて以下のコマンドを叩く。
例えばUbuntu
だったらこれです。
wsl --unregister Ubuntu
これで容量が開放されるはずです。
もう一度入れたい場合は以下のコマンドでいいはず。
wsl --install
積んでるエロゲやるために買ったのになんですかこの記事は
apt
で調べるとショート動画のが出てくる!