Как вручную установить вспомогательные библиотеки Android, необходимые для пакетов Xamarin.Android.Support?
Примеры шагов для Xamarin.Android.Support.v4
Загрузите нужный пакет NuGet для Xamarin.Android.Support (например, установите его с помощью диспетчера пакетов NuGet).
Используйте ildasm
, чтобы узнать, какая версия android_m2repository.zip требуется пакету NuGet:
ildasm /caverbal /text /item:Xamarin.Android.Support.v4 packages\Xamarin.Android.Support.v4.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll | findstr SourceUrl
Пример результата:
property string 'SourceUrl' = string('https://dl-ssl.google.com/android/repository/android_m2repository_r32.zip')
property string 'SourceUrl' = string('https://dl-ssl.google.com/android/repository/android_m2repository_r32.zip')
property string 'SourceUrl' = string('https://dl-ssl.google.com/android/repository/android_m2repository_r32.zip')
Скачайте android_m2repository.zip из Google с помощью URL-адреса, возвращенного из ildasm. Кроме того, вы можете проверить версию репозитория поддержки Android, установленного в настоящее время, в диспетчере SDK Android:
Если версия совпадает с версией, необходимой для пакета NuGet, вам не нужно загружать ничего нового. Вместо этого можно повторно запаковать существующий каталог m2repository, расположенный под дополнительными компонентами\android в пути к пакету SDK (как показано в верхней части окна диспетчера пакетов SDK Для Android).
Вычислите хэш MD5 URL-адреса, возвращенного из ildasm. Отформатируйте результирующую строку, чтобы использовались только прописные буквы без пробелов в строке. Например, при необходимости измените переменную $url
, а затем выполните следующие 2 строки (на основе исходного кода C# из Xamarin.Android) в PowerShell:
$url = "https://dl-ssl.google.com/android/repository/android_m2repository_r32.zip"
(([System.Security.Cryptography.MD5]::Create()).ComputeHash([System.Text.Encoding]::UTF8.GetBytes($url)) | %{ $_.ToString("X02") }) -join ""
Пример результата:
F16A3455987DBAE5783F058F19F7FCDF
Скопируйте android_m2repository.zip в папку %LOCALAPPDATA%\Xamarin\zips\ . Переименуйте файл, чтобы использовать хэш MD5 из предыдущего шага вычисления хэша MD5. Например:
%LOCALAPPDATA%\Xamarin\zips\F16A3455987DBAE5783F058F19F7FCDF.zip
(Необязательно) Распакуйте файл в папку %LOCALAPPDATA%\Xamarin\Xamarin.Android.Support.v4\23.4.0.0\content\ (создание подкаталога content\m2repository ). Если пропустить этот шаг, то первая сборка, использующая библиотеку, займет немного больше времени, так как потребуется выполнить этот шаг.
Номер версии для подкаталога (23.4.0.0 в этом примере) не совпадает с версией пакета NuGet. Чтобы найти правильный номер версии, можно использовать ildasm
:
ildasm /caverbal /text /item:Xamarin.Android.Support.v4 packages\Xamarin.Android.Support.v4.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll | findstr /C:"string 'Version'"
Пример результата:
property string 'Version' = string('23.4.0.0')}
property string 'Version' = string('23.4.0.0')}
property string 'Version' = string('23.4.0.0')}
Next Steps
В этом документе рассматривается текущее поведение по состоянию на август 2016 года. Методика, описанная в этом документе, не является частью стабильного набора тестов для Xamarin, поэтому в будущем ее поддержка может прерваться.
Чтобы получить дополнительную помощь, связаться с нами или если проблема остается даже после использования указанных выше сведений, сведения о способах связи, предложениях, а также о том, как при необходимости сообщить о новой ошибке, см. здесь.