Устранение ошибок установки библиотеки
В некоторых случаях при установке вспомогательных библиотек Android могут возникать ошибки. В этом руководстве представлены обходные пути для устранения некоторых типичных ошибок.
Обзор
При сборке проекта приложения Xamarin.Android могут возникать ошибки сборки, когда Visual Studio или Visual Studio для Mac пытаются скачать и установить библиотеки зависимостей. Многие из этих ошибок вызваны проблемами с сетевым подключением, повреждением файлов или проблемами с управлением версиями. В этом руководстве описаны несколько распространенных ошибок при установке вспомогательных библиотек и приведены обходные решения для этих проблем, которые позволят продолжить сборку проекта приложения.
Ошибки при скачивании из m2Repository
Указав ссылку на пакет NuGet для вспомогательных библиотек Android или службы Google Play, вы можете увидеть ошибки с репозиторием 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 вручную
Если вы попытались выполнить описанные выше действия автоматического восстановления и по-прежнему имеют ошибки сборки, вы можете вручную скачать файл android_m2repository_r_nn_.zip (с помощью веб-браузера) и установить его в соответствии со следующими шагами. Эта процедура также полезна, если у вас нет доступа к Интернету на компьютере разработчика, но вы можете скачать архив с другого компьютера.
Скачайте файл android_m2repository_r_nn_.zip, соответствующий сообщению об ошибке. Ссылки предоставляются в следующем списке (наряду с соответствующим хэшом MD5 URL-адреса каждой ссылки):
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 – 0595E577D19D31708195A8308781EE6
Если в этой таблице нет нужного репозитория m2repository, вы можете создать нужный URL-адрес для скачивания самостоятельно, добавив префикс
https://dl-ssl.google.com/android/repository/
к имени нужного репозитория m2repository. Например, используйте дляhttps://dl-ssl.google.com/android/repository/android\_m2repository\_r_nn_.zip
скачивания android_m2repository_r_nn_.zip.Переименуйте файл в соответствующий хэш MD5 для URL-адреса скачивания, как показано в приведенной выше таблице. Например, если вы скачали android_m2repository_r25.zip, переименуйте его в 0B3F1796C97C707339FB13AE8507AF50.zip. Если хэш MD5 для нужного URL-адреса не представлен в этой таблице, можно преобразовать URL-адрес в хэш-строку MD5 с помощью онлайн-генератора MD5.
Скопируйте этот файл в папку zips для Xamarin.
В Windows эта папка находится в папке C:\Users\username\AppData\Local\Xamarin\zips.
В Mac OS X это папка /Users/имя_пользователя/.local/share/Xamarin/zips.
Например, на следующем снимках экрана показан результат загрузки и переименования android_m2repository_r16.zip в хэш MD5 url-адреса скачивания в Windows:
Если эта процедура не устраняет ошибку сборки, необходимо вручную скачать файл android_m2repository_r_nn_.zip , распаковать его и установить его содержимое, как описано в следующем разделе.
Скачивание и установка файлов m2repository вручную
Полностью ручной процесс восстановления из ошибок m2repository влечет за собой скачивание файла 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. Например, на следующем снимке экрана показано содержимое и внедренные вложенные каталоги, созданные в папке 23.1.1.0 для android_m2repository_r25.zip:
Скопируйте m2repository из извлеченного ZIP-архива в каталог content, созданный на предыдущем шаге:
В извлеченном каталоге .zip перейдите к m2repository\com\android\support\v4 и откройте папку, соответствующую номеру версии, созданному выше (в этом примере 23.1.1):
Скопируйте все файлы из этой папки в каталог embedded, созданный на шаге 4.
Убедитесь, что все файлы скопированы. Каталог embedded теперь должен содержать файлы с расширениями .jar, .aar и .pom.
Распакуйте содержимое всех извлеченных AAR-файлов в каталог embedded. В Windows добавьте расширение .zip к файлу AAR-файлу, откройте его и скопируйте содержимое в каталог embedded. В macOS распакуйте AAR-файл с помощью команды unzip в окне терминала (например, unzip file.aar).
Вы вручную установили недостающие компоненты и теперь проект должен компилироваться без ошибок. Если это не так, убедитесь, что вы скачали из m2repository правильную версию ZIP-файла, которая соответствует версии в сообщении об ошибке, и убедитесь, что ее содержимое установлено в нужных расположениях, как описано в предыдущих шагах.
Итоги
В этой статье объясняется, как устранить распространенные ошибки, которые могут возникать при автоматической загрузке и установке библиотек зависимостей. Здесь описано, как удалить проблемную библиотеку и перестроить проект для повторного скачивания и повторной установки библиотеки. Здесь описано, как скачать библиотеку и установить ее в папку zips. Здесь также описана более трудоемкая процедура скачивания и установки необходимых файлов вручную, которая поможет устранить проблемы, которые не могут быть разрешены с помощью автоматических средств.