XamarinがVisual Studioに無償で統合されたことで、今月非常にXamarin周辺の動きが活発化しています。
しかし特に、Xamarin for Visual Studioは現時点ではスタートアップ時にはまる落とし穴が多く、インストールできなかったり、ビルドできなかったり、トラブルが頻出しているようです。
せっかく盛り上がってるのに、最初の最初でつまずいて諦めてしまうなんてもったいなさすぎます。
そんなわけで本エントリーでは、現在進行形でトラブってる人向けのQAをまとめたいと思います。
トラブっている方の一助になれば幸いです。
なお、まだ纏め切れていないトラブルもあると思います。
その為、未解決の課題やここに記載されていないけど解決した問題ががありましたら、コメントもしくは私のツイッター宛てに頂けると助かります。
ぜひご協力お願いいたします。
なお、本エントリーの対応は、以下の4点に絞らせていただきます。
- インストール
- プロジェクト作成
- ビルド
- デバッグ
具体的な実装方法や、設計などは本エントリーの対象外とさせていただきますので、ご了承ください。
【目次】
- インストール
- プロジェクト作成
- ビルド
- Xamarin Mac Agentって何???
- UWPプロジェクトがビルドされない
- エラーメッセージ「定義済みの型 'Xxxxx.Yyyyy' は、定義またはインポートされていません。」などが主にUWPプロジェクトで大量に発生する
- エラーメッセージ「Error retrieving parent for item: No resource found that~」が大量発生する
- エラーメッセージ「Error retrieving parent for item: No resource found that matches the given name~」が発生する
- 認証プロキシ環境下でXamarin.Formsがビルドできない
- MACないけどどうしてもiOSの開発を試してみたい
- デバッグ
- Xamarin.Forms.Forms.Initでエラーが発生する場合の対処方法
- 「Detecting existing process」とログがでてデバッグできずに落ちる
- デバッグ時に修正した最新版が配置されない
- Xamarin.Formsのバージョン2.2.0.43を使うとiOS実行時にエラーで落ちる
- エラーメッセージ「Could not connect to the debugger.」が発生しデバッグできない
- エラーメッセージ「Method 'TextView.SetTextAppearance' not found.」が発生する
- エラーメッセージ「配置エラーが発生しました。続行しますか?」というダイアログが表示される
- Androidのデバックを実行時にデバッガーが選択できない
- その他
インストール
Android用 Visual Studioエミュレーターのインストールが「エラーコード:1603」で失敗する
Hyper-Vが無効な状態でインストールすると発生します。
ただ、インストールは失敗しますが、Hyper-Vは有効化に更新されているハズです。
Hyper-Vのインストール後に、再起動が必要なため有効化は成功するが、エミュレータのインストールには失敗するようです。
「コントロールパネル」->「プログラム」->「Windowsの機能の有効化または無効化」を開き、下図のようにHyper-Vが有効になっていることを確認したのち、PCを再起動してください。
その後、Visual Studioインストーラを起動し、「変更」から再度該当エミュレータをインストールしてください。
Android SDKが「この製品は正常にダウンロードされませんでした:HTTP ステータス403~」とでてインストールに失敗する
企業などの認証プロキシ環境下でインストールするなどで発生します。
残念ながら、Android SDKのインストールは認証プロキシ環境に対応していません。
これはAndroid SDKを手動でインストールすることで回避できます。
以下を参考にまずは環境をセットアップしてください。
ただしこのままだと、Xamarin.Formsのプロジェクトを作成した際に、ビルドが通りません。 以下を参考に、Fiddlerを設定した後、Xamarin.Formsのプロジェクトのビルドを通してください。
一度ビルドが通れば、以後はFiddlerは不要です。
Visual Studioインストールとは別で入れたAndroid SDKの紐づけができない
こちらのエントリーを参照ください。
nuits.hatenadiary.jp
Android Studioとの共存が上手くいかない
こちらのエントリーを参照ください。
nuits.hatenadiary.jp
プロジェクト作成
Xamarin.FormsでUWPのプロジェクトが作成できない
以下の二つのケースが考えられます。
- Windows 10 SDKがインストールされていない
- Xamarin for Visual Studioのバージョンが古い
- Windows 7環境のせい
UWPプロジェクトを作成するには、Windows 10 SDKが必要です。
Visual Studioのインストーラを再度起動して、下記のユニバーサルWindows アプリ開発ツールをインストールしてください。
Xamarin for Visual Studioを最新版に更新するには以下のリンク先をご確認ください。
nuits.hatenadiary.jp
Windows 7環境だと、UWPプロジェクトの作成時にTarget Versionを「ビルド 10586」を指定するとエラーが発生します。
「ビルド 10240」を指定すると上手くいきますが、Windows 7環境でUWP開発は色々と試練がありすぎるので、OSのバージョンを上げることをお勧めします。
ビルド
Xamarin Mac Agentって何???
いきなり以下のような画面が表示されて驚いた方もいると思います。
当初、誤報が蔓延していたため誤解されている方がいらっしゃいますが、Xamarin for Visual StudioでiOSアプリのビルドなどを実施するためにはMACが必須です。
(Appleが許可しないため)
Xamarin Mac Agentは、ビルドサーバとなるMACへ接続するためのものです。
iOSビルド環境の構築の詳細は本エントリーでは省略させていただきます。
可能であればそのうち対応するかもしれません。
UWPプロジェクトがビルドされない
Xamarin.Formsプロジェクトを作成直後は、UWPのプロジェクトがビルド対象から外れています。
「ビルド」->「構成マネージャー」を開いて、UWPのビルドと配置を有効にしてください。
エラーメッセージ「定義済みの型 '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が足りていません。
以下の図の、赤枠で囲った場所を見てください。
ファイル列に「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さんのブログの以下のエントリーに纏められています。
エラーメッセージ「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」が正常にセットアップができていないケースです。 以下のリンク先を確認してみてください。
Androidのデバックを実行時にデバッガーが選択できない
正常な状態だと、以下のようにデバッグ実行する際に、エミュレーターを選択して実行できます。
しかし、以下のように「開始」しか選べないケースがあります。
この場合、以下の手順を順番に試してみてください。
どこかで治ると思います。
- ソリューションをいったん閉じて開きなおす
- Visual Studioを再起動する
- PCを再起動する
3.は、Visual Studio Emulator for Androidをインストールした直後に、PCを再起動していないと発生する可能性があります。
それ以外は、単純にVisual StudioかXamarinの不具合だと思います。
1.のケースは@okazukiさんに教えていただきました。
@nuits_jp プロジェクトを開きなおしたらいけました
— かずき@働きたくない (@okazuki) April 12, 2016
その他
ここに記載のない障害にぶち当たったり、でなんか挙動が不振になったら以下の対策も併用してみてください。
- Visual Studio、Xamarin Studioなどを再起動する。
- PCを再起動する。
- 「bin」フォルダや「obj」フォルダをすべて手作業で削除してリビルドする。 (クリーンやリビルドだけだと削除されないファイルが発生することがあります)
またスタートアップにおける注意事項はXamarinエヴァンジェリストの田淵さんが以下のエントリーに纏めてくださっているので、そちらをご覧ください。
ytabuchi.hatenablog.com
また上記以外のバッドノウハウが同じく田淵さんのエントリーにまとまっていますので、そちらも合わせてご確認ください。
ytabuchi.hatenablog.com