[Visual Studio][Xamarin][CrossPlatform] Android SDKをインストールする

Xamarin.Formsアプリのビルド時に「No resource found that matches xxxx」という警告が発生することがあります。これはAndroidのものです。

判断方法は簡単でプロジェクト名の後ろに.Droidが付いているかどうかです。

Android系の警告

たいていの場合はAndroid SDKをインストールすることで解決できるようです。

Android SDKのインストールは、Visual Studioの[ツール]-[Android]-[Android SDK Manager…]を選択します。

Andoroid SDKのインストール

続いて、Android SDK Managerが表示されます。

Android SDK Manager

あとは、必要なSDKにチェックを付けてインストールを行います。

以下のものはインストールしておきましょう。
Tools
・Android SDK Tools
・Android SDK Tools Platform-tools
・Android SDK Build-tools 23.0.3

Android 6.0(API 23)
・SDK Platform

Android 5.1.1(API 22)
・SDK Platform

Android 5.0.1(API 21)
・SDK Platform

Android 4.4.2(API 19)
・SDK Platform

Android 4.1.2(API 16)
・SDK Platform

Android 4.0.3(API 15)
・SDK Platform

Extras
・Android Support Repository
・Intel x86 Emulator Accelerator (Haxm Installer)

[Visual Studio][Xamarin] アップデート通知が表示されたのでアップデートしてみた

Visual Studio使用中にアップデート通知が来たので、アップデートをしてみました。メモ代わりにスクリーンショットを撮りながら作業を進めていきます。

はじめに以下のようなアップデート通知が表示されました。

アップデート通知

まずは[Download]ボタンを押します。するとダウンロードが開始され、以下のように進捗が進みます。[Pause]ボタンが表示されるので、途中で中断することもできるようです。

ダウンロードの進捗状況の表示

ダウンロードが完了すると[Install]ボタンが表示されるので、クリックします。

インストール

いよいよインストールの開始です。[Next]ボタンをクリックします。

[Next]ボタンをクリック

続いてライセンス条項をよく読み[I Accsept~]にチェックを付けて、[Next]ボタンをクリックします。

[I accept~]をチェックして[Next]をクリック

オプション選択画面が表示されるので、必要に応じて選択をし[Next]ボタンをクリックします。

オプションを選択して[Next]をクリック

[Install]ボタンをクリックして、インストールを開始します。

[Install]ボタンをクリック

ユーザーアカウント制御が表示されるので[はい]ボタンをクリックします。

ユーザーアカウント制御

インストールが始まりますが、Visual Studioが起動している場合は以下のようにダイアログが表示されます。Visual Studioを閉じて[OK]ボタンをクリックします。

Visual Studio起動中に表示されるダイアログ

インストール完了

無事にインストールが完了すると、以下のように表示されるので[Finish]ボタンをクリックします。

インストール完了画面

 

 

 

 

 

[Visual Studio][Xamarin][CrossPlatform] 新規プロジェクトを作成する

前回まではiOSやAndroidのネイティブアプリの作成方法を見てきました。

今回からXamarin.Formsを使用したクロスプラットフォームの開発手法を見ていきます。

そもそも、クロスプラットフォーム開発って何でしょう?

現在世の中に出回っているデバイスはA

ndroidかiOSのデバイスが主流です。で、アプリを作成する際に、それぞれのOS用にコーディングするのは時間が掛かりますし、非効率的です。そこで仕様が異なるOSやデバイスで、同じ仕様のアプリを作成できるようにしたものが、クロスプラットフォーム開発と呼ばれいてます。

Xamarinはこのクロスプラットフォーム開発ができる開発環境です。

では、新規プロジェクトでどれを選べばよいかを見ていきましょう。

新しいプロジェクトの作成ダイアログを開いたら、左側で[Visual C#]-[Windows]-[Cross Platform]を選択します。右側にはクロスプラットフォームのプロジェクト一覧が表示されます。この中から「Blank Xaml App(Xamarin.Forms.Portable)」を選択します。あとはプロジェクト名を入力して[OK]を押すとプロジェクトの作成が開始されます。

クロスプラットフォーム開発のプロジェクト作成しばらく待つと(結構待ちます)。

途中UWPアプリプロジェクトのバージョン選択ダイアログが表示されるのですが、現時点ではAniversary Editionを選択しない方がいいようです。ということでBuild 10586を選択します。

UWPターゲット選択

プロジェクトの作成が完了すると、使用している環境にもよりますが大量の警告やらエラーが出まくります。

いったんビルドすることで消えるエラーや警告があります。それでも消えない場合はNugetパッケージマネージャを起動してXamarin関連のアップデートがないかを確認してください。

Nugetマネージャ

無事エラーが取れたら、ソリューションエクスプローラーを確認してみましょう(エラーの解決方法は随時公開していきたいと思います)。

ソリューションエクスプローラー

一番上が各デバイスの共通となるプロジェクトで、それ以外がデバイス毎のプロジェクトになります。

上の例を表示すると以下のようになります

プロジェクト名 対応デバイス
BlankXamlAppSample 各デバイス共通のプロジェクト
BlankXamlAppSample.Droid Android
BlankXamlAppSample.iOS iOS
BlankXamlAppSample.UWP(Universal Windows) Windows(UWPアプリ)
BlankXamlAppSample.Windows(Windows 8.1) Windows 8.1向け
BlankXamlAppSample.WinPhone(Windows Phone 8.1) Windows Phone 8.1向け

不要なデバイス向けのプロジェクトもあるかもしれません。そのような場合は削除しても大丈夫です。

ということで、プロジェクトの作成方法については理解できたかと思います。

次回も引き続きXamarin.Formsを見ていきます。

 

 

[Visual Studio][Xamarin][Android] イベントを作成する

前回の記事では、Android用のプロジェクトを作成しました。

今回は、配置したコントロールに名前を付け、イベントを作成する方法について見ていきます。

はじめに、コントロールに名前を付けてみましょう。

前回配置したButtonを選択したら、プロパティウィンドウで「id」という項目を探して下さい。この「id」がWindowsアプリでいうところのNameプロパティに該当します。

新しいidは、プロパティ入力欄の「@+id/」の後ろに入力します。

id名をbtnSayHelloにする場合は「@+id/btnSayHello」とします。

ついでに表面の文字も変更してみましょう。こちらはTextプロパティに対して設定をします。「クリック」という文字を設定してみましょう。設定後のプロパティウィンドは以下のようになります。

idとTextプロパティの設定

続いて前回貼り付けたLarge TextにもidとTextプロパティを設定しておきましょう。

idはtxtMsgに、Textプロパティは空欄に設定をしてください。

続いてイベントを作成します。

残念ながらプロパティウィンドからイベントを作成することはできないようです。そこでコードからイベントを作成します。

ソリューションエクスプローラーからMainActivity.csを開いて以下のようにコードを編集してください。

[Activity(Label = "DroidSample", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.Main);

        Button btnM = FindViewById<Button>(Resource.Id.btnSayHello);
        TextView txtV = FindViewById<TextView>(Resource.Id.txtMsg);

        btnM.Click += delegate
        {
            txtV.Text = "こんにちは";
        };
    }
}

OnCreateはAndroidの起動時に実行されるメソッドです。このメソッドではアプリの初期化処理などを行います。今回はこの中にButtonのイベント作成します。

はじめに、画面に配置したButtonとTextViewコントロールをコードから使用できるようにします。それぞれのButton型の変数btnMとTextView型の変数txxVに入れることとします。コード中のFindViewByIdは、画面に配置したコントロールをId名で取得するというものです。画面に配置したコントロールはResouce.Idで管理されているので、ここからIdを指定して取り出しているというわけです。

続いてイベントの作成ですが、btnM.Clickとしている部分です。delegateを使用した記述となっています。このイベントの中ではtxtVのTextプロパティに「こんにちは」の文字列を設定していますでの、ボタンがクリックされるとTextViewには「こんにちは」の文字が表示されます。

実行例を以下に示します。

実行例

 

 

関連記事

[Visual Studio][Xamarin][Android] UI部品を配置する

[Visual Studio][Xamarin][Android] UI部品を配置する

今回はXamarinを使用してAndroidのプロジェクトを作成してUI部品を配置する方法を見ていきましょう。

新規プロジェクトの作成を開き、左側で「Android」を選択して一覧から「Blank App(Android)」を選択します。あとは名前欄にプロジェクト名を入力して[OK]ボタンを押します。

プロジェクトの作成

プロジェクトの作成が完了すると、画面中央にはGet Start With Xamarinが表示されます。

Get Start With Xamarin

メイン画面デザイン用のファイルは、Resources\layoutフォルダーにあるMain.axmlというファイルです。拡張子が*xamlかと思いましたが、*.axmlなんですね。紛らわしい…

このファイルをダブルクリックすると画面中央にはAndoroidの画面が表示され、左側にはツールボックスがあることがわかります。

メイン画面のデザインファイル

UI部品はツールボックスからメイン画面にドラッグ&ドロップで配置することができます。

今回はButtonとText(Latge)を配置してみましょう。

ドラッグ&ドロップでUI部品を配置

次回は配置したButtonコントロールのイベントを作成する方法を見ていきます。