電気系プログラミングガチ素人が、Xamarinでアプリ開発する話　4日目　~Android,,iOSのデバッガを起動させたい~

# まえがき
この記事は「Skype工学勉強会」の「アプリ作成部屋　Xamarin」での活動をまとめて記録したものです。参考書が、マイクロソフトさんから布教されておりますので、そちらを和訳しつつ、まとめて記事にしていく流れになっております。
しかし、当方、タグの通り、「電気系」の学生で「ガチ素人」であるため、先輩にまさかりを投げてもらいながら、覚えていく所存でございます。また、もし他に指摘点などございましたらぜひともよろしくおねがいします。

↓Xamarinの布教用PDF、Kindle版もございますので、英語読める方、ぜひとも。
https://blogs.msdn.microsoft.com/microsoft_press/2016/03/31/free-ebook-creating-mobile-apps-with-xamarin-forms/

# 前回までのXamarin!!
Helloアプリ作ろうぜ！！
が、できなかった。

# MacにXamarinを入れようぜ
入ったは良いんですが、Androidはなぜか、JDKのバージョンが合わないとの事で、つっぱねられました（吐血）

#iOSバージョンを使ってみようぜ。
という事で、ビルドをしてみたら、


<img width="1270" alt="スクリーンショット 0030-04-28 午後10.47.37.png" src="https://qiita-image-store.s3.amazonaws.com/0/244181/4728f9b1-66aa-0cd6-8d53-c3bfd899bf82.png">

動いた・・・

#では、さっそくコードを書きませう

<b>App.xamlの左横の▶︎をクリックすると、App.csが出現する！(ココ重要！！)</b>

```C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Xamarin.Forms;

namespace skype_1
{
    public partial class App : Application
    {
        
        public App()
        {
            /*InitializeComponent();

            MainPage = new skype_1Page();*/ //コメントアウトして消去

            MainPage = new ContentPage
            {
                Content = new StackLayout//C＃勉強会、５日目のコンストラクターの生成構文参照
                {
                    VerticalOptions = LayoutOptions.Center,
                    Children = {
                        new Label {
                            HorizontalTextAlignment = TextAlignment.Center,
                            Text = "Welcome to Xamarin Forms!"
                        }
                    }
                }
            };

        }

        protected override void OnStart()
        {
            // Handle when your app starts
        }

        protected override void OnSleep()
        {
            // Handle when your app sleeps
        }

        protected override void OnResume()
        {
            // Handle when your app resumes
        }
    }
}

```

実行すると、

<img width="421" alt="スクリーンショット 0030-04-28 午後11.07.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/244181/5bf59181-af02-9bb4-8540-377a2e0aa56b.png">

できましたね（吐血）

#あとがき
とりあえずできたはいいんですが、Androidの奴もコーディングしたいんですよね・・・・
いまはもう眠いのでGABの勉強して寝ます（決意）

#追記！！
どうやら、最後の行に以下のメッセージがありました。

```
Could not install package 'Xamarin.Android.Support.Animated.Vector.Drawable 26.1.0.1'. You are trying to install this package into a project that targets 'MonoAndroid,Version=v7.1', but the package does not contain any assembly references or content files
```

その解決法は、
Androidのプロジェクトを開いて、右クリックして、オプションを選択すると、構成が開きます。

<img width="957" alt="スクリーンショット 0030-04-29 午後6.33.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/244181/252dcbcf-a13e-5e3b-d569-7161e29cc464.png">

これで最新のバージョンに変換するとできてしまいました。

iOSの開発に切り替えて、「今までのはなんだったのか」と、案外早くに解決できてしまって、「今までのはなんだったのか」と感じていまいましたね。
なんとも・・・二段オチ

#追記の追記


これで実行しても、エラーメッセージが・・・ということでこちらも調べました。

```
Exception while loading assemblies: 
System.IO.FileNotFoundException: 
Could not load assembly 'System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 
Perhaps it doesn't exist in the Mono for Android profile?
```

こちらのサイトさんに行きつきました。
http://d.hatena.ne.jp/omanuke-ekunamo/20180309/1520574867
そんなまさか・・・と思いながら、Androidのcsprojファイルの最初の＜propaty　group＞
に、

```
<AndroidSdkBuildToolsVersion>23.0.3</AndroidSdkBuildToolsVersion>
```
を挿入して、Nugetの追加から、v４を検索し、Xamarin.Android.Support.-v4をインストール。
そうすると、今度はHAXMがないぞと怒られながらも実行すると、死ぬほど遅い・・・

https://stackoverflow.com/questions/49167015/intel-haxm-not-available-in-vs-for-mac?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa

そんな時この情報を見つけたので、この回答の、hereをクリックし、zipを展開して、中のdmgでインストールすれば、
<img width="1440" alt="スクリーンショット 0030-05-01 午後1.49.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/244181/5d5dcae7-d1f8-976a-2924-4f10ba777b15.png">

約１０秒で、エミュレーターが起動しました。（吐血）案外、調べると、コミュニティも英語しかなく、
C＃使いのプログラマの参考になれば、幸いです。


##（注記）
他のサイト様の対処法を鵜呑みにし、他のV１３も同時に入れると、以下のメッセージがでてしまいました。おそらくパッケージが重複してしまったためでしょう。

```
Xamarin.Forms targets have been imported multiple times. Please check your project file and remove the duplicate import(s).
```


#まとめ
死ぬほど時間取られて楽しかったです（吐血）
就活の時間を犠牲にしてはいけない
こいついっつも吐血してんな