Поделиться через


Устранение ошибок установки библиотеки

В некоторых случаях при установке вспомогательных библиотек 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

Часто эту проблему можно исправить, удалив библиотеку, с которой возникли проблемы, и повторив сборку по следующей процедуре.

  1. Перейдите в каталог вспомогательной библиотеки на локальном компьютере.

    • В Windows библиотеки поддержки находятся в папке C:\Users\username\AppData\Local\Xamarin.

    • В Mac OS X вспомогательные библиотеки расположены в папке /Users/имя_пользователя/.local/share/Xamarin.

  2. Найдите папку, соответствующую библиотеке и версии, которые указаны в сообщении об ошибке. Например, папка библиотеки и версии для приведенного выше сообщения об ошибке находится в Android.Support.v4\22.2.1:

    Пример расположения папки для вспомогательной библиотеки 22.2.1

  3. Удалите содержимое папки этой версии. Не забудьте удалить ZIP-файл, а также вложенные каталоги content и embedded из этой папки. Для приведенного выше сообщения об ошибке нужно удалить файлы и подкаталоги, показанные на этом снимке экрана (content, embedded и android_m2repository_r16.zip):

    Пример содержимого папки вспомогательной библиотеки 22.2.1

    Здесь очень важно полностью удалить все содержимое папки. Хотя эта папка изначально может содержать отсутствующий android_m2repository_r16.zip-файл , этот файл может быть частично скачан или поврежден.

  4. Перестройте проект. Это приведет к повторной загрузке отсутствующих библиотек.

В большинстве случаев эти действия позволят устранить ошибку сборки и продолжить работу. Если удаление этой библиотеки не устраняет ошибку сборки, необходимо вручную скачать и установить файл android_m2repository_r_nn_.zip , как описано в следующем разделе.

Скачивание из m2repository вручную

Если вы попытались выполнить описанные выше действия автоматического восстановления и по-прежнему имеют ошибки сборки, вы можете вручную скачать файл android_m2repository_r_nn_.zip (с помощью веб-браузера) и установить его в соответствии со следующими шагами. Эта процедура также полезна, если у вас нет доступа к Интернету на компьютере разработчика, но вы можете скачать архив с другого компьютера.

  1. Скачайте файл 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.

  2. Переименуйте файл в соответствующий хэш MD5 для URL-адреса скачивания, как показано в приведенной выше таблице. Например, если вы скачали android_m2repository_r25.zip, переименуйте его в 0B3F1796C97C707339FB13AE8507AF50.zip. Если хэш MD5 для нужного URL-адреса не представлен в этой таблице, можно преобразовать URL-адрес в хэш-строку MD5 с помощью онлайн-генератора MD5.

  3. Скопируйте этот файл в папку 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:

    Пример репозитория r16.zip, переименованного в 0595E577D19D31708195A83087881EE6.zip

Если эта процедура не устраняет ошибку сборки, необходимо вручную скачать файл 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 и установить его содержимое, выполните следующие действия.

  1. Удалите содержимое папки, которая соответствует библиотеке и версии, указанным в сообщении об ошибке. Например, в приведенном выше сообщении об ошибке вы удалите содержимое C:\Users\username\AppData\Local\Xamarin\Android.Support.v4\23.1.1.0. Как описано ранее, важно полностью удалить все содержимое этого каталога:

    Удаление папок content, embedded и android_m2repository из папки 23.1.1.0

  2. Скачайте файл android_m2repository_r_nn_.zip из Google, соответствующий сообщению об ошибке (см. таблицу в предыдущем разделе по ссылкам).

  3. Извлеките ZIP-архив в любое расположение (например, на рабочий стол). При этом будет создан каталог, соответствующий имени ZIP-архива. В этом каталоге найдите подкаталог с именем m2repository:

    Папка m2repository в извлеченном ZIP-архиве

  4. В каталоге библиотеки с версией, которую вы удаляли на шаге 1, повторно создайте содержимое подкаталогов content и embedded. Например, на следующем снимке экрана показано содержимое и внедренные вложенные каталоги, созданные в папке 23.1.1.0 для android_m2repository_r25.zip:

    Создание папок content и embedded в папке 23.1.1.0

  5. Скопируйте m2repository из извлеченного ZIP-архива в каталог content, созданный на предыдущем шаге:

    Снимок экрана с m2repository, скопированным в папку 23.1.1.0/content

  6. В извлеченном каталоге .zip перейдите к m2repository\com\android\support\v4 и откройте папку, соответствующую номеру версии, созданному выше (в этом примере 23.1.1):

    Пример списка файлов, содержащихся в папке support-v4/23.1.1

  7. Скопируйте все файлы из этой папки в каталог embedded, созданный на шаге 4.

    Пример файлов, скопированных в папку 23.1.1.0/embedded

  8. Убедитесь, что все файлы скопированы. Каталог embedded теперь должен содержать файлы с расширениями .jar, .aar и .pom.

  9. Распакуйте содержимое всех извлеченных AAR-файлов в каталог embedded. В Windows добавьте расширение .zip к файлу AAR-файлу, откройте его и скопируйте содержимое в каталог embedded. В macOS распакуйте AAR-файл с помощью команды unzip в окне терминала (например, unzip file.aar).

Вы вручную установили недостающие компоненты и теперь проект должен компилироваться без ошибок. Если это не так, убедитесь, что вы скачали из m2repository правильную версию ZIP-файла, которая соответствует версии в сообщении об ошибке, и убедитесь, что ее содержимое установлено в нужных расположениях, как описано в предыдущих шагах.

Итоги

В этой статье объясняется, как устранить распространенные ошибки, которые могут возникать при автоматической загрузке и установке библиотек зависимостей. Здесь описано, как удалить проблемную библиотеку и перестроить проект для повторного скачивания и повторной установки библиотеки. Здесь описано, как скачать библиотеку и установить ее в папку zips. Здесь также описана более трудоемкая процедура скачивания и установки необходимых файлов вручную, которая поможет устранить проблемы, которые не могут быть разрешены с помощью автоматических средств.