AndroidスマホのターミナルアプリからVPSに繋いでCLIでAndroidアプリを開発するための環境構築方法のメモ
動機
WPFアプリをテキストエディタのみで作れることから同じようにandroidアプリも作れないかと思い調べた。
結果できた。
試した環境
- Ubuntu 20.04.6(さくらVPS・コンソールのみ)
- Ubuntu 22.04.3 LTS(Windows11上のwslテスト環境・コンソールのみ)
(下のスクショはwslテスト環境)
最初にアップデート作業
sudo apt update && sudo apt upgrade -y
必要なSDKのインストール
"dotnet7" "android-sdk" "openjdk-21-jdk"の3つは最低必要
sudo apt install dotnet7 android-sdk openjdk-21-jdk
.NET MAUIのテンプレートをインストールしてプロジェクトを生成
#.NET MAUIのテンプレートを探す
dotnet new search maui
#.NET MAUIのテンプレートをインストール
dotnet new install Microsoft.Maui.Templates
#testMAUIというプロジェクトを作成
dotnet new maui --name testMAUI
生成されたプロジェクトファイルを一部変更しておく
ターゲットの'net6.0-ios;net6.0-maccatalyst'を消しておかないと上手くビルドできない
<!-- csprojファイルのターゲットフレームワークを変更 -->
<TargetFrameworks>net6.0-android;net6.0-ios;net6.0-maccatalyst</TargetFrameworks>
<!-- ↓のように編集 -->
<TargetFrameworks>net7.0-android</TargetFrameworks>
ビルドをしながら環境修正
dotnet workloadにmaui-androidをインストール
この状態でビルドしてみる
cd testMAUI
dotnet build
エラー文を確認するとworkloadにmaui-androidをインストールするようメッセージが出るのでインストールを実行
dotnet workload install maui-android
dotnet workload restore testMAUI.csproj
#これでもビルドで同じエラー文が出る場合は↓を実行
dotnet workload repair
環境変数'AndroidSdkDirectory'の設定
このエラーには環境変数'AndroidSdkDirectory'にandroid-sdkのインストール場所を設定する
#.bashrc等に記載しておくとよい
export AndroidSdkDirectory=/usr/lib/android-sdk
android-sdkに対応プラットフォームバージョンをインストール
これはandroid-sdkに対応プラットフォームバージョンが入っていないことが理由
CLIのみで目的のバージョンを入れる場合にはAndroid Studio公式からcmdline-toolsをダウンロードしてandroid-sdk直下に展開する。
#ダウンロードして
curl https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip?hl=ja --output ~/cmdlinetool.zip
#展開
sudo unzip ~/cmdlinetool.zip -d /usr/lib/android-sdk/
sdkmanagerを使用してプラットフォームバージョンをインストール
プラットフォームバージョンはエラーメッセージに出ていた「API レベル 数字」の数字の部分をandroid-数字の部分に当てはめる
sudo /usr/lib/android-sdk/cmdline-tools/bin/sdkmanager "platforms;android-33" --sdk_root=/usr/lib/android-sdk/
これでプロジェクトディレクトリでビルドコマンドを打つとapkファイルが生成されます。
#直接実機で動かす場合はreleaseにする
dotnet buid -c release
できあがったapkファイルは「"プロジェクトディレクトリ"/bin/Release/net**-android/」内にあります。
以上!!