ライブラリ インストール エラーの解決
"場合によっては、Android サポート ライブラリのインストール中にエラーが発生することがあります。 このガイドでは、いくつかの一般的なエラーの回避策について説明します。"
概要
Xamarin.Android アプリ プロジェクトをビルドするときに、Visual Studio または Visual Studio for Mac が依存関係ライブラリをダウンロードしてインストールしようとすると、ビルド エラーが発生することがあります。 これらのエラーの多くは、ネットワーク接続の問題、ファイルの破損、またはバージョン管理の問題が原因です。 このガイドでは、サポート ライブラリのインストールに関する最も一般的なエラーについて説明し、これらの問題を回避してアプリ プロジェクトを再度ビルドするための手順を示します。
m2Repository のダウンロード中のエラー
Android サポート ライブラリまたは Google Play サービスの NuGet パッケージを参照すると、m2repository エラーが表示される場合があります。 エラー メッセージは次のようになります。
Download failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r16.zip and extract it to the C:\Users\mgm\AppData\Local\Xamarin\Android.Support.v4\22.2.1\content directory.
この例は android_m2repository_r16 のものですが、android_m2repository_r18 や android_m2repository_r25 などの別のバージョンでも同じエラー メッセージが表示される場合があります。
m2repository エラーからの自動復旧
多くの場合、この問題は、次の手順に従って問題のあるライブラリを削除してリビルドすることで解決できます。
お使いのコンピューターのサポート ライブラリ ディレクトリに移動します。
Windows では、サポート ライブラリは C:\Users\username\AppData\Local\Xamarin にあります。
Mac OS X では、サポート ライブラリは、/Users/ユーザー名/.local/share/Xamarin にあります。
エラー メッセージに対応するライブラリとバージョン フォルダーを見つけます。 たとえば、上記のエラー メッセージのライブラリとバージョン フォルダーは Android.Support.v4\22.2.1 にあります。
そのバージョン フォルダーの内容を削除します。 このフォルダー内の .zip ファイル、および content と embedded サブディレクトリを必ず削除してください。 上に示したエラー メッセージの例では、このスクリーンショットに示されているファイルとサブディレクトリ (content、embedded、および android_m2repository_r16.zip) を削除します。
このフォルダーのコンテンツ全体を削除することが重要です。 このフォルダーには、"欠落した" android_m2repository_r16.zip ファイルが最初に含まれる場合がありますが、このファイルが部分的にダウンロードされているか、破損している可能性があります。
プロジェクトをリビルドします。これにより、ビルド プロセスによって、欠落しているライブラリが再ダウンロードされます。
ほとんどの場合、これらの手順でビルド エラーが解決され、続行できるようになります。 このライブラリを削除してもビルド エラーが解決しない場合は、次のセクションの説明に従って、android_m2repository_r_nn_.zip ファイルを手動でダウンロードしてインストールする必要があります。
m2repository の手動ダウンロード
上記の自動復旧手順を試してもビルド エラーが発生する場合は、次の手順に従って、(Web ブラウザーを使用して) android_m2repository_r_nn_.zip ファイルを手動でダウンロードしてインストールできます。 この手順は、開発用コンピューターでインターネットにアクセスできないが、別のコンピューターを使用してアーカイブをダウンロードできる場合にも役立ちます。
エラー メッセージに対応する android_m2repository_r_nn_.zip ファイルをダウンロードします。リンクは、次の一覧に (各リンクの URL の対応する MD5 ハッシュとともに) 示されています。
android_m2repository_r33.zip – 5FB756A25962361D17BBE99C3B3FCC44
android_m2repository_r32.zip – F16A3455987DBAE5783F058F19F7FCDF
android_m2repository_r31.zip – 99A8907CE2324316E754A95E4C2D786E
android_m2repository_r30.zip – 05AD180B8BDC7C21D6BCB94DDE7F2C8F
android_m2repository_r29.zip – 2A3A8A6D6826EF6CC653030E7D695C41
android_m2repository_r28.zip – 17BE247580748F1EDB72E9F374AA0223
android_m2repository_r27.zip – C9FD4FCD69D7D12B1D9DF076B7BE4E1C
android_m2repository_r26.zip – 8157FC1C311BB36420C1D8992AF54A4D
android_m2repository_r25.zip – 0B3F1796C97C707339FB13AE8507AF50
android_m2repository_r24.zip – 8E3C9EC713781EDFE1EFBC5974136BEA
android_m2repository_r23.zip – D5BB66B3640FD9B9C6362C9DB5AB0FE7
android_m2repository_r22.zip – 96659D653BDE0FAEDB818170891F2BB0
android_m2repository_r21.zip – CD3223F2EFE068A26682B9E9C4B6FBB5
android_m2repository_r20.zip – 650E58DF02DB1A832386FA4A2DE46B1A
android_m2repository_r19.zip – 263B062D6EFAA8AEE39E9460B8A5851A
android_m2repository_r18.zip – 25947AD38DCB4865ABEB61522FAFDA0E
android_m2repository_r17.zip – 49054774F44AE5F35A6BA9D3C117EFD8
android_m2repository_r16.zip – 0595E577D19D31708195A83087881EE6
m2repository アーカイブがこの表に示されていない場合は、ダウンロードする m2repository の名前の先頭に
https://dl-ssl.google.com/android/repository/
を付けることで、ダウンロード URL を作成できます。 たとえば、https://dl-ssl.google.com/android/repository/android\_m2repository\_r_nn_.zip
を使用して android_m2repository_r_nn_.zip をダウンロードします。上記の表に示されているように、ファイルの名前をダウンロード URL の対応する MD5 ハッシュに変更します。 たとえば、android_m2repository_r25.zip をダウンロードした場合は、その名前を 0B3F1796C97C707339FB13AE8507AF50.zip に変更します。 ダウンロードしたファイルのダウンロード URL の MD5 ハッシュが表に示されていない場合は、オンライン MD5 ジェネレーターを使用して、URL を MD5 ハッシュ文字列に変換できます。
そのファイルを Xamarin zips フォルダーにコピーします。
Windows では、このフォルダーは C:\Users\username\AppData\Local\Xamarin\zips にあります。
Mac OS X では、このフォルダーは /Users/ユーザー名/.local/share/Xamarin/zips にあります。
たとえば、次のスクリーンショットは、android_m2repository_r16.zip がダウンロードされ、Windows 上でそのダウンロード URL の MD5 ハッシュに名前が変更された場合の結果を示しています。
この手順でビルド エラーが解決しない場合は、次のセクションの説明に従って、android_m2repository_r_nn_.zip ファイルを手動でダウンロードして解凍し、その内容をインストールする必要があります。
m2repository ファイルの手動ダウンロードとインストール
m2repository エラーから復旧するための完全な手動プロセスでは、(Web ブラウザーを使用して) android_m2repository_r_nn_.zip ファイルをダウンロードして解凍し、その内容をお使いのコンピューターのサポート ライブラリ ディレクトリにコピーする必要があります。 次の例では、このエラー メッセージから復旧します。
Unzipping failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip and extract it to the C:\Users\mgm\AppData\Local\Xamarin\Android.Support.v4\23.1.1\content directory.
次の手順に従って m2repository をダウンロードし、その内容をインストールします。
エラー メッセージに対応するライブラリ フォルダーの内容を削除します。 たとえば、上記のエラー メッセージでは、C:\Users\username\AppData\Local\Xamarin\Android.Support.v4\23.1.1.0 の内容を削除します。 前述のように、このディレクトリの内容全体を削除する必要があります。
エラー メッセージに対応する android_m2repository_r_nn_.zip ファイルを Google からダウンロードします (リンクについては、前のセクションの表を参照してください)。
この .zip アーカイブを任意の場所 (デスクトップなど) に展開します。 これにより、.zip アーカイブの名前に対応するディレクトリが作成されます。 このディレクトリ内に、m2repository という名前のサブディレクトリがあります。
手順 1 で消去した、バージョン管理されたライブラリ ディレクトリで、content および embedded サブディレクトリを再作成します。 たとえば、次のスクリーンショットは、android_m2repository_r25.zip の 23.1.1.0 フォルダーに content および embedded サブディレクトリが作成されることを示しています。
m2repository を、展開した .zip から、前の手順で作成した content ディレクトリにコピーします。
展開した .zip ディレクトリで、m2repository\com\android\support\support-v4 を参照し、上で作成したバージョン番号に対応するフォルダーを開きます (この例では、23.1.1)。
このフォルダー内のすべてのファイルを、手順 4 で作成した embedded ディレクトリにコピーします。
すべてのファイルがコピーされていることを確認します。 embedded ディレクトリには、.jar、. aar、. pom などのファイルが含まれているはずです。
展開した .aar ファイルの内容を embedded ディレクトリに解凍します。 Windows の場合は、.aar ファイルに .zip 拡張子を追加して開き、その内容を embedded ディレクトリにコピーします。 macOS の場合は、ターミナルで unzip コマンドを使用して .aar ファイルを解凍します (たとえば、unzip file.aar)。
この時点で、欠落しているコンポーネントが手動でインストールされているので、プロジェクトはエラーなしでビルドされます。 そうでない場合は、エラー メッセージ内のバージョンと正確に対応する m2repository .zip アーカイブ バージョンをダウンロードしていることと、その内容を、上記の手順で説明されている正しい場所にインストールしていることを確認してください。
まとめ
この記事では、依存関係ライブラリの自動ダウンロードおよびインストール中に発生する可能性のある一般的なエラーから復旧する方法を説明しました。 ライブラリを再ダウンロードして再インストールする方法として、問題のあるライブラリを削除し、プロジェクトをリビルドする方法について説明しました。 ライブラリをダウンロードし、それを zips フォルダーにインストールする方法について説明しました。 また、自動的な方法で解決できない問題に対処する方法として、必要なファイルを手動でダウンロードしてインストールする、より複雑な手順についても説明しました。