rksoftware

Visual Studio とか C# とかが好きです

.NET で Android アプリを作る ( Windows & Visual Studio & Windows Subsystem for Android)

Windows と Visual Studio でやっていきます。

■ 最初に

今回 Visual Studio でやっていきますが、Visual Studio のどのワークロードか把握できていません。後で調べたいと思っています。

■ Visual Studio で新規にプロジェクトを作成する

Visual Studio で普通に 「 Android 」で検索して Android Application を選んで作っていきます。

ウィザード形式で。特別な設定項目はありません。 いくつかのビューの構成からテンプレートを選んだりとかは無いようです。シンプルですね。

パッケージ名とターゲットとするバージョンを選びます。パッケージ名は Android ワールドなので、.NET の名前空間とは違ってくるのが面白いですね。

できました。これでデバッグ実行すればもう動きます。簡単ですね。

■ Windows Subsystem for Android で動かしてみよう

Windows Subsystem for Android が整っている Windows 環境ならば Windows Subsystem for Android でデバッグ実行ができます。せっかくなので Windows Subsystem for Android で実行してみましょう。

まずは、Windows Subsystem for Android の設定を開きます。Windows のメニューから Android 用 Windows サブシステム設定 を開きます。

開いたアプリの左のタブで 開発者 を選択して開発者モードを オン にします。画像は オン になっている様子です。

青字の 開発者向け設定の管理 をクリックします。
こんなアプリが起動してきます。これは起動待機画面なので Twiter チャンスです。

こんな画面が出てきたら Twitter を閉じて Visual Studio に戻ります。

Visual Studio で 「 ツール > Android > Android Adb コマンドプロンプト... 」 を選択します。

表示されたコマンドプロンプトや Windows Terminal など (Windows の設定により異なります) で次のコマンドを実行します。
ここで入力している IP アドレスとポートは Android 用 Windows サブシステム設定 アプリの 開発者モード のところに表示されていたものを打ちました。

>adb connect 127.0.0.1:58526

次の様になれば成功です。

>adb connect 127.0.0.1:58526
failed to authenticate to 127.0.0.1:58526

後ろで次のようなダイアログが表示されていると思いますので、許可 してください。

Visual Studio に戻るとデバッグターゲットが Microsoft Corporation Subsystem for Android になっているはずです。
ここで注意点です。このまま実行して次のように見慣れた Android のエミュレーターで実行されたら 失敗 です。騙されないでください。

もしエミュレーターになる場合は、Visual Studio でデバッグターゲットを一度エミュレーターに変えてから Microsoft Corporation Subsystem for Android をもう一度選択します。これが正しい手順化分かりませんが、これで意図通りに動いています。

成功すれば、このように Windows 上のアプリのように実行されます。おめでとうございます! ありがとうございます!

UWP などのアプリと同じように Windows のメニューに登録されています。

■ adb connect がうまくいかない場合

対象のコンピューターによって拒否されたため、接続できませんでした。

次のようなメッセージが表示される場合は、開発者向け設定の管理 を開いて、もう一度コマンドを実行してください。

>adb connect 127.0.0.1:58526
cannot connect to 127.0.0.1:58526: 対象のコンピューターによって拒否されたため、接続できませんでした。 (10061)

この画面です。

already connected to

次のようなメッセージが表示される場合は、すでに成功しています。大丈夫です、手順を進めてください。

>adb connect 127.0.0.1:58526
already connected to 127.0.0.1:58526

■ 簡単ですね

簡単ですね。