こんにちは。エクセルソフトの田淵です。
2015/10/20 に Xamarin.Forms 1.5.1 がリリースされました。2015/10/30 現在の最新版は Hotfix が当たった 1.5.1.6471 になっています。
さて、この 1.5.1 から、
- Xamarin.Android.Support.v4 (≥ 23.0.1.1)
- Xamarin.Android.Support.Design (≥ 23.0.1.1)
- Xamarin.Android.Support.v7.AppCompat (≥ 23.0.1.1)
- Xamarin.Android.Support.v7.CardView (≥ 23.0.1.1)
- Xamarin.Android.Support.v7.MediaRouter (≥ 23.0.1.1)
が必要になりました。現在 Xamarin.Forms のプロジェクトテンプレートでインストールされる Xamarin.Forms は 1.3.3.6323 で、確か ListView.HasUnevenRows にバグがあり、高さ可変の ListView が作れなかった気がしますので、最新にしないといけません。で、バージョンアップすると、以下のように Android サポートライブラリも追加されます。
んで、人によっては
バージョンアップした後でこのように、ギャァ!! エラーがたくさん!!! という方がいらっしゃるはず。私のように…
エラーはなぜ起こるのか?
例えばエラーメッセージで Please install package: 'Xamarin.Android.Support.v7.CardView' available in SDK installer. Java library file C:\Users\<USERNAME>\AppData\Local\Xamarin\Android.Support.v7.CardView\23.0.1\embedded\classes.jar doesn't exist.
が出ている場合、該当フォルダ
%LOCALAPPDATA%\Xamarin\Android.Support.v7.CardView\23.0.1
を開いてみてください。本来は以下のように zip ファイル、content フォルダ、embedded フォルダがあり、
embedded フォルダの中に、上記エラーで無いよ!と言われている classes.jar
があるはずなのです。
ルートフォルダにある android_m2repository_r20.zip
ファイルは恐らく Android ネイティブの CardView ライブラリだと思います。そして、133MB と非常に大きなものです。サイズが大きいので、Xamarin では一度ダウンロードしたライブラリはここにキャッシュして次からこのフォルダを見に来るようです。
エラーが出ている皆さんは、以前に Xamarin.Forms をバージョンアップしようとして、Visual Studio が固まってしまって(と思って)、強制終了をしたことは無いでしょうか? 私は何回もありました。実は頑張って何百MB ものライブラリをダウンロードして展開していたと思われます。
途中で強制終了してしまうと恐らく zip のダウンロードや展開が不十分で jar がない状態になります。そのため、次にこのフォルダを見に来た Visual Studio が jar ファイルが無い!とエラーを出すのだと推測しました。
対処方法
%LOCALAPPDATA%\Xamarin
にある、エラーメッセージで jar がないと言われている NuGet ライブラリのフォルダ を削除して、再度ビルドしてみてください。また、Android SDK は最新にしておく必要がありそうです。
私は一度クリーンにしたかったので、全部削除したので、現在はキレイな感じですw
2016/5/12 追記
また、同じフォルダにzips
というフォルダも存在する場合、そちらも削除してください。
解決しない場合は、Android プロジェクトの Xamarin.Forms ライブラリをアンインストール (同時に Android.Support ライブラリもアンインストールされます) して、再度 Xamarin.Forms 1.5.1.6471 をインストールして、再ビルドしてみてください。
Android.Support ライブラリのダウンロードは非常に時間が掛かりますが、辛抱強く待ち、再ビルドすればエラーは出なくなるはずです。
参考
Xamarin 気になった方は
是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。 学習用リソース や JXUG リンクページ に参考資料を纏めてますので併せてどうぞ。
Xamarin の情報が欲しい方はこのブログも購読いただいたりすると嬉しいです。
以上です。