読者です 読者をやめる 読者になる 読者になる

Xamarinでの開発環境を整えて、Hello World的なことを試してみた

Android Xamarin C#

ちょっとしたAndroidアプリを作ろうと思ったのですが、SSDを入れ替えた時に以前のRubotoでの開発環境をなくしてしまいました。

再びRubotoの環境を整えても良かったのですが、最近Xamarinが気になっていることから、Xamarinの開発環境構築とHello World的なことを試してみました。

 

環境

 

インストール

以下を参考に、公式からダウンロードしてインストールします。今回は特にパスを変更することなくインストールしました。

 

Xamarin + VisualStudioを試す

以下の記事でVisualStudio CommunityでもXamarin開発ができるようになると見かけたため、現時点ではどうかを試してみました。
Microsoft and Xamarin Expand Global Partnership | Xamarin Blog

 
インストーラーでのインストール時にVisualStudioに関する部分が失敗していたので、再度Xamarin 3.2.236.msiをダウンロード・実行して再度インストールを試してみました。

 
最初はXamarin for Visual Studio 2013のみを選択してインストールしましたが、Android Applicationのプロジェクトテンプレートを開こうとしたところ、以下のエラーが発生しました。

インポートされたプロジェクト "C:\Program Files(x86)\MSBuild\Xamarin\Android\Xamarin.Android.Csharp.targets" が見つかりませんでした。宣言のパスが正しいかどうか、およびファイルがディスクに存在しているかどうかを確認してください。

 
そこで、Xamarin.Android SDKを追加でインストールしたところ、プロジェクトテンプレートを展開することができました。

次にビルドをしてみたところ、Xamarinアカウントへのログインが求められビルドできませんでした。

そのため、VisualStudio Communityではまだ使えないのかなと考え、Xamarin Studioで開発をすることにしました。

 

デバッグ環境の構築

Nexus7

カメラモードにする必要があるため、以下を参考に切り替えました。
kakakikikekeのブログ: Nexus7でUSBデバッグモードを有効にする方法

 

開発端末

Nexus7を接続しただけでは認識されなかったので、Google USB Driverを入れました。Webサイトの場合、以下の場所にありました。
Google USB Driver | Android Developers

 

エミュレータ Genymotion Emulatorをセットアップ

速そうなエミュレータGenymotionを見かけたため試してみようと考えました。

ただ、古い世代のCPUでも動作するのか分からなかったため、以下を参考にして、Core2 Duo世代とCore i 第一世代の2つの環境にインストールしてみることにしました。
VirtualBoxを使用したAndroidエミュレータ Genymotion を導入 - Qiita

なお、実機に合わせて仮想マシンGoogle Nexus7 4.4.4 800x1280で作成します。

 

Core 2 Duo環境

Core2 DuoながらWinodws8.1を入れている開発環境です。

事前に調べたところ、Windows8.1ではHyper-VVirtualBoxの相性が悪いようでした。そこで以下を参考にBCDEditを使って起動時にHyper-Vの有無を選択できるようにしました。
Switch easily between VirtualBox and Hyper-V with a BCDEdit boot Entry in Windows 8.1 - Scott Hanselman

 
Hyper-Vを切った状態でGenymotionを立ち上げようとしたところ、今度は次のエラーが出ました。

Unable to start the virtual device To start virtual devices, make sure that your video card supports OpenGL 2.0 and update the drivers. Details: Failed to initialize backend EGL display (error:4) If possible, update your video card drivers

 
似た例がないかを調べてみると、同じような世代のハードで動作していないようです。
Genymotion(新AndroVM Player)について - CBRで風になる~♪

そのため、Core2 Duo世代のCPUを持つ開発環境では使うのを諦めました。

 

Core i 第一世代環境

こちらも同じようにセットアップしてみたところ、無事に起動しました。

ただ、上記のQiitaにある通りネットワークまわりでエラーが出たため、VirtualBoxマネージャにてネットワーク設定を変更し、動作を確認できました。

あと、Genymotionのシャットダウン方法が分かりませんでしたが、VirtualBox ManagerのGUIよりシャットダウンできました。
android - How do I stop a Genymotion virtual device? - Stack Overflow

 

XamarinでのHello Worldコード

Android Applicationテンプレートを使いました。今回はHello World的なものだったので、特に内容の変更はありません。

 

デプロイ

Xamarin StudioよりGenymotionと実機の両方にデプロイしましたが、問題なく動作しました。

なお、Android Applicationテンプレートのコードをそのままデプロイした時のファイルサイズは、6KBでした。

 
また、XamarinのStarterではファイルサイズが128KBまでビルドできるようですが、どのファイルサイズを指すのか分かりませんでした。

そのことをつぶやいていたところ、以下の返信をいただきました。ありがとうございました。

 
とりあえず環境ができたので、いろいろと試してみようと思います。