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

nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Visual Studio and Development Technologies。なお掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Xamarin for Visual Studio スタートアップ トラブルQA集

XamarinがVisual Studioに無償で統合されたことで、今月非常にXamarin周辺の動きが活発化しています。
しかし特に、Xamarin for Visual Studioは現時点ではスタートアップ時にはまる落とし穴が多く、インストールできなかったり、ビルドできなかったり、トラブルが頻出しているようです。 せっかく盛り上がってるのに、最初の最初でつまずいて諦めてしまうなんてもったいなさすぎます。

そんなわけで本エントリーでは、現在進行形でトラブってる人向けのQAをまとめたいと思います。
トラブっている方の一助になれば幸いです。

なお、まだ纏め切れていないトラブルもあると思います。
その為、未解決の課題やここに記載されていないけど解決した問題ががありましたら、コメントもしくは私のツイッター宛てに頂けると助かります。
ぜひご協力お願いいたします。

なお、本エントリーの対応は、以下の4点に絞らせていただきます。

  1. インストール
  2. プロジェクト作成
  3. ビルド
  4. デバッグ

具体的な実装方法や、設計などは本エントリーの対象外とさせていただきますので、ご了承ください。

【目次】

インストール

AndroidVisual Studioエミュレーターのインストールが「エラーコード:1603」で失敗する

Hyper-Vが無効な状態でインストールすると発生します。
ただ、インストールは失敗しますが、Hyper-Vは有効化に更新されているハズです。
Hyper-Vのインストール後に、再起動が必要なため有効化は成功するが、エミュレータのインストールには失敗するようです。

「コントロールパネル」->「プログラム」->「Windowsの機能の有効化または無効化」を開き、下図のようにHyper-Vが有効になっていることを確認したのち、PCを再起動してください。
f:id:nuitsjp:20160407195842p:plain

その後、Visual Studioインストーラを起動し、「変更」から再度該当エミュレータをインストールしてください。

Android SDKが「この製品は正常にダウンロードされませんでした:HTTP ステータス403~」とでてインストールに失敗する

企業などの認証プロキシ環境下でインストールするなどで発生します。
残念ながら、Android SDKのインストールは認証プロキシ環境に対応していません。

これはAndroid SDKを手動でインストールすることで回避できます。
以下を参考にまずは環境をセットアップしてください。

qiita.com

ただしこのままだと、Xamarin.Formsのプロジェクトを作成した際に、ビルドが通りません。 以下を参考に、Fiddlerを設定した後、Xamarin.Formsのプロジェクトのビルドを通してください。

qiita.com

一度ビルドが通れば、以後はFiddlerは不要です。

Visual Studioインストールとは別で入れたAndroid SDKの紐づけができない

こちらのエントリーを参照ください。
nuits.hatenadiary.jp

Android Studioとの共存が上手くいかない

こちらのエントリーを参照ください。
nuits.hatenadiary.jp

プロジェクト作成

Xamarin.FormsでUWPのプロジェクトが作成できない

以下の二つのケースが考えられます。

UWPプロジェクトを作成するには、Windows 10 SDKが必要です。
Visual Studioインストーラを再度起動して、下記のユニバーサルWindows アプリ開発ツールをインストールしてください。

f:id:nuitsjp:20160407210108p:plain

Xamarin for Visual Studioを最新版に更新するには以下のリンク先をご確認ください。
nuits.hatenadiary.jp

Windows 7環境だと、UWPプロジェクトの作成時にTarget Versionを「ビルド 10586」を指定するとエラーが発生します。
「ビルド 10240」を指定すると上手くいきますが、Windows 7環境でUWP開発は色々と試練がありすぎるので、OSのバージョンを上げることをお勧めします。

ビルド

Xamarin Mac Agentって何???

いきなり以下のような画面が表示されて驚いた方もいると思います。

f:id:nuitsjp:20160407215103p:plain

当初、誤報が蔓延していたため誤解されている方がいらっしゃいますが、Xamarin for Visual StudioiOSアプリのビルドなどを実施するためにはMACが必須です。
Appleが許可しないため)
Xamarin Mac Agentは、ビルドサーバとなるMACへ接続するためのものです。

iOSビルド環境の構築の詳細は本エントリーでは省略させていただきます。
可能であればそのうち対応するかもしれません。

UWPプロジェクトがビルドされない

Xamarin.Formsプロジェクトを作成直後は、UWPのプロジェクトがビルド対象から外れています。
「ビルド」->「構成マネージャー」を開いて、UWPのビルドと配置を有効にしてください。
f:id:nuitsjp:20160407211419p:plain

エラーメッセージ「定義済みの型 'Xxxxx.Yyyyy' は、定義またはインポートされていません。」などが主にUWPプロジェクトで大量に発生する

Xamarinでは、Xamarinの提供する基本コンポーネントをNuGetから取得する仕組みになっています。
Xamarin.Formsのプロジェクト作成直後は、必要なコンポーネントがNuGetから取得されていないため、上記のエラーが表示されます。

ビルドを実行すると、自動的にNuGetから必要なパッケージがダウンロードされ問題は解消されるはずです。

エラーメッセージ「Error retrieving parent for item: No resource found that~」が大量発生する

必要なAndroidバージョンのSDK Platformが足りていません。
Android SDK Managerから、API 4.0, 4.1, 4.4, 5.0, 5.1, 6.0のSDK Platformをインストール後、「リビルド」してください。

インストール方法が分からない方は、以下のリンク先を参考にしてください。
qiita.com

エラーメッセージ「Error retrieving parent for item: No resource found that matches the given name~」が発生する

必要なAndroidバージョンのSDK Platformが足りていません。
以下の図の、赤枠で囲った場所を見てください。

f:id:nuitsjp:20160408223539p:plain

ファイル列に「values-v23.xml」と表示されています。 これはAPI 23(Android6.0)のSDK Platformが不足していることを表しています。
SDK Platformをインストールした上で、リビルドしてください。

インストール方法が分からない方は、以下のリンク先を参考にしてください。
qiita.com

認証プロキシ環境下でXamarin.Formsがビルドできない

以下のエントリーを参考にしてください。
nuits.hatenadiary.jp

MACないけどどうしてもiOSの開発を試してみたい

いろいろ制限はありますが、下記のエントリーをご参考にどうぞ。
nuits.hatenadiary.jp

デバッグ

Xamarin.Forms.Forms.Initでエラーが発生する場合の対処方法

原因や対処方法はひとつではないかも知れませんがひとまず以下を試してみてください。 nuits.hatenadiary.jp

「Detecting existing process」とログがでてデバッグできずに落ちる

オプションの「Fast Assembly Deployment」を有効にしていると発生するケースがあるようです。
詳細はこちらをご確認ください。
qiita.com

デバッグ時に修正した最新版が配置されない

一つ上と同一原因である可能性が高いです。
上のリンク先をご確認ください。

Xamarin.Formsのバージョン2.2.0.43を使うとiOS実行時にエラーで落ちる

2016/05/31現在、修正版の2.2.0.45がリリースされています。
特別な理由がない限り、2.2.0.43は2.2.0.45へアップデートした方がよいでしょう。

この件の顛末は、@ticktackmobileさんのブログの以下のエントリーに纏められています。

ticktack.hatenablog.jp

エラーメッセージ「Could not connect to the debugger.」が発生しデバッグできない

CPUがSkylakeの場合に発生します。
以下の田淵さんのエントリーを参考にしてください。
ytabuchi.hatenablog.com

エラーメッセージ「Method 'TextView.SetTextAppearance' not found.」が発生する

特定条件化で、TextCellを使った際に発生するようです。
2016/5/22時点でBeta Channelでは解消している?ようなので、そのうちStableにも降ってくると思います。
対策は二つあります。

  • Androidプロジェクトのプロパティを開き、Target Android Versionを「Android 6.0(API Level 23)」に変更する
  • XamarinをBeta Channelに変更する

通常は前者がお勧めです。

エラーメッセージ「配置エラーが発生しました。続行しますか?」というダイアログが表示される

今のところ2つの原因が確認できています。

  • コンパイルエラーが存在する
  • デバック実行先のデバイスが準備できていない

前者は、コンパイルの通らない状態でデバック実行(F5)すると発生します。
問題を解決してビルド後に再度デバックを開始してください。

後者のケースは複数原因はあると思いますが、一番ありがちなのは「Visual Studio Emulator for Android」が正常にセットアップができていないケースです。 以下のリンク先を確認してみてください。

qiita.com

Androidのデバックを実行時にデバッガーが選択できない

正常な状態だと、以下のようにデバッグ実行する際に、エミュレーターを選択して実行できます。
f:id:nuitsjp:20160412184759p:plain

しかし、以下のように「開始」しか選べないケースがあります。
f:id:nuitsjp:20160412184806p:plain

この場合、以下の手順を順番に試してみてください。
どこかで治ると思います。

  1. ソリューションをいったん閉じて開きなおす
  2. Visual Studioを再起動する
  3. PCを再起動する

3.は、Visual Studio Emulator for Androidをインストールした直後に、PCを再起動していないと発生する可能性があります。
それ以外は、単純にVisual StudioかXamarinの不具合だと思います。

1.のケースは@okazukiさんに教えていただきました。

その他

ここに記載のない障害にぶち当たったり、でなんか挙動が不振になったら以下の対策も併用してみてください。

  • Visual Studio、Xamarin Studioなどを再起動する。
  • PCを再起動する。
  • 「bin」フォルダや「obj」フォルダをすべて手作業で削除してリビルドする。 (クリーンやリビルドだけだと削除されないファイルが発生することがあります)

またスタートアップにおける注意事項はXamarinエヴァンジェリストの田淵さんが以下のエントリーに纏めてくださっているので、そちらをご覧ください。
ytabuchi.hatenablog.com

また上記以外のバッドノウハウが同じく田淵さんのエントリーにまとまっていますので、そちらも合わせてご確認ください。
ytabuchi.hatenablog.com