Come si possono installare manualmente le librerie di supporto Android necessarie per i pacchetti Xamarin.Android.Support?
Passaggi di esempio per Xamarin.Android.Support.v4
Scaricare il pacchetto NuGet Xamarin.Android.Support desiderato, ad esempio installandolo con la gestione pacchetti NuGet.
Usare ildasm
per verificare la versione di android_m2repository.zip il pacchetto NuGet necessario:
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
Output di esempio:
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')
Scaricare android_m2repository.zip da Google usando l'URL restituito da ildasm. In alternativa, è possibile controllare la versione del repository di supporto Android attualmente installato in Android SDK Manager:
Se la versione corrisponde a quella necessaria per il pacchetto NuGet, non è necessario scaricare nulla di nuovo. È invece possibile comprimere nuovamente la directory m2repository esistente che si trova in extras\android nel percorso SDK (come illustrato nella parte superiore della finestra di Android SDK Manager).
Calcolare l'hash MD5 dell'URL restituito da ildasm. Formattare la stringa risultante per usare tutte le lettere maiuscole e senza spazi. Ad esempio, modificare la $url
variabile in base alle esigenze ed eseguire le 2 righe seguenti (in base al codice C# originale di Xamarin.Android) in 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 ""
Output di esempio:
F16A3455987DBAE5783F058F19F7FCDF
Copiare android_m2repository.zip nella cartella %LOCALAPPDATA%\Xamarin\zips\ . Rinominare il file per usare l'hash MD5 del passaggio di calcolo dell'hash MD5 precedente. Ad esempio:
%LOCALAPPDATA%\Xamarin\zips\F16A3455987DBAE5783F058F19F7FCDF.zip
(Facoltativo) Decomprimere il file in %LOCALAPPDATA%\Xamarin\Xamarin.Android.Support.v4\23.4.0.0\content\ (creazione di una sottodirectory content\m2repository ). Se si ignora questo passaggio, la prima compilazione che usa la libreria richiederà un po' di tempo perché sarà necessario completare questo passaggio.
Il numero di versione per la sottodirectory (23.4.0.0 in questo esempio) non corrisponde alla versione del pacchetto NuGet. È possibile usare ildasm
per trovare il numero di versione corretto:
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'"
Output di esempio:
property string 'Version' = string('23.4.0.0')}
property string 'Version' = string('23.4.0.0')}
property string 'Version' = string('23.4.0.0')}
Passaggi successivi
Questo documento illustra il comportamento corrente a partire da agosto 2016. La tecnica descritta in questo documento non fa parte del gruppo di test stabile per Xamarin, quindi potrebbe interrompersi in futuro.
Per ulteriore assistenza, per contattare Microsoft o se il problema persiste anche dopo aver utilizzato le informazioni precedenti, vedere Quali opzioni di supporto sono disponibili per Xamarin? per informazioni su opzioni di contatto, suggerimenti e su come segnalare un nuovo bug, se necessario.