Androidに Termux をインストールして .NET8の実行環境を作る

目的

Android に Termux をインストールして .NET8 を実行できる環境を作っていきます

準備

以下の記事に Termux の導入方法が分かりやすく記載されています。 こちらを参考に Ubuntu にログインできるまで作業します。 qiita.com

Termux インストール後、sshで接続したい場合は以下の記事を参照

hone-choko.com

.NET8 インストール

# apt update
# apt upgrade -y
# apt install -y libicu72 wget vim
# wget https://download.visualstudio.microsoft.com/download/pr/43e09d57-d0f5-4c92-a75a-b16cfd1983a4/cba02bd4f7c92fb59e22a25573d5a550/dotnet-sdk-8.0.100-linux-arm64.tar.gz
# mkdir -p $HOME/dotnet
# tar zxf dotnet-sdk-8.0.100-linux-arm64.tar.gz -C $HOME/dotnet
# export PATH=$PATH:$HOME/dotnet
# echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrc

上記はAndroidでASP.NET Coreを動かす #Android - Qiita に記載されているインストール方法を元に .NET8 用に変更しました。

最後の

# echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrc

これを実行しないと dotnet コマンド実行時にエラーが発生します。

root@localhost:~# dotnet --version
GC heap initialization failed with error 0x8007000E
Failed to create CoreCLR, HRESULT: 0x8007000E

よく理解していないのですが、GCヒープの初期化でクラッシュするらしい…?

github.com

動作確認

Blazor の公式チュートリアルに沿って作成します。 dotnet.microsoft.com

# dotnet new blazor -o BlazorApp
# cd BlazorApp
# dotnet run

コンソールに http://localhost:<ポート番号> が表示されるので Android側のブラウザでアクセスすると Blazorアプリが表示されます。