¿Cómo instalar manualmente las bibliotecas de compatibilidad de Android que requieren los paquetes de Xamarin.Android.Support?
Pasos de ejemplo para Xamarin.Android.support.v4
Descargue el paquete NuGet de Xamarin.Android.Support que desee (por ejemplo, mediante su instalación con el administrador de paquetes NuGet).
Use ildasm
para comprobar la versión de android_m2repository.zip que el paquete NuGet necesita:
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
Ejemplo:
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')
Descargue android_m2repository.zip de Google mediante la dirección URL devuelta desde ildasm. Como alternativa, puede comprobar qué versión de Android Support Repository tiene instalada actualmente en Administrador de Android SDK:
Si la versión coincide con la que necesita para el paquete NuGet, no tendrá que descargar nada. En su lugar, puede volver a comprimir el directorio m2repository existente que se encuentra en extras\android en la ruta de acceso del SDK (como se muestra en la parte superior de la ventana de Android SDK Manager).
Calcule el hash MD5 de la dirección URL devuelta desde ildasm. Formatee la cadena resultante para que todas las letras estén en mayúsculas y no haya ningún espacio. Por ejemplo, ajuste la variable $url
según sea necesario y, a continuación, ejecute las 2 líneas siguientes (basadas en el código original C# de Xamarin.Android) en 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 ""
Ejemplo:
F16A3455987DBAE5783F058F19F7FCDF
Copie android_m2repository.zip en la carpeta %LOCALAPPDATA%\Xamarin\zips\. Cambie el nombre del archivo para que use el hash MD5 del paso anterior de cálculo del hash MD5. Por ejemplo:
%LOCALAPPDATA%\Xamarin\zips\F16A3455987DBAE5783F058F19F7FCDF.zip
(Opcional) Descomprima el archivo en %LOCALAPPDATA%\Xamarin\Xamarin.Android.Support.v4\23.4.0.0\content\ (creando un subdirectorio content\m2repository ). Si omite este paso, la primera compilación que use la biblioteca tardará un poco más, ya que deberá completar este paso.
El número de versión del subdirectorio (23.4.0.0 en este ejemplo) no es exactamente la misma que la versión del paquete NuGet. Puede utilizar ildasm
para buscar el número correcto de versión:
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'"
Ejemplo:
property string 'Version' = string('23.4.0.0')}
property string 'Version' = string('23.4.0.0')}
property string 'Version' = string('23.4.0.0')}
Pasos siguientes
En este documento se describe el comportamiento actual a partir de agosto de 2016. La técnica descrita en este documento no forma parte del conjunto de pruebas estable para Xamarin, por lo que podría interrumpirse en el futuro.
Para obtener más ayuda, para ponerse en contacto con nosotros o si este problema persiste incluso después de usar la información anterior, consulte ¿Qué opciones de soporte técnico están disponibles para Xamarin? para obtener información sobre las opciones de contacto, sugerencias y cómo presentar un nuevo error si es necesario.