Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Informazioni sulle librerie di supporto Android
Google ha creato librerie di supporto per rendere disponibili nuove funzionalità per le versioni precedenti di Android. In generale, alle librerie di supporto viene assegnato un numero di versione nel nome, che è il livello API Android più basso con cui sono compatibili (ad esempio: Support-v4 può essere usato solo nel livello API 4 e versioni successive. Altre informazioni in questa discussione di Stack Overflow.
Due delle librerie di supporto: Support-v4 e Support-v13 non possono essere usate insieme nella stessa app, ovvero si escludono a vicenda. Questo perché Support-v13 contiene effettivamente tutti i tipi e l'implementazione di Support-v4. Se si tenta di fare riferimento a entrambi nello stesso progetto, si verificano errori di tipo duplicati.
Problemi con il riferimento
Da quando Support-v4 è diventato così popolare, molte librerie di terze parti ora dipendono da esso. Potrebbero invece scegliere di dipendere da Support-v13, ma è più comune dipendere dalla versione 4 , perché offre alle app che usano queste librerie di terze parti l'opzione di supporto dei livelli API fino a 4.
Se una libreria di terze parti di Xamarin fa riferimento all'associazione Xamarin.Android.Support.v4.dll a Support-v4, qualsiasi app che usa questa libreria deve anche fare riferimento Xamarin.Android.Support.v4.dlla . Questo diventa un problema quando la stessa app vuole usare anche alcune delle funzionalità dall'associazione Xamarin.Android.Support.v13.dll a Support-v13. Se si fa riferimento a entrambe le associazioni, si verificano errori di tipo duplicato.
Assembly di associazione v4 inoltrato di tipo
Per risolvere questo problema, è stato creato un assembly speciale Xamarin.Android.Support.v4.dll senza implementazione, ma semplicemente [assembly: TypeForwardedTo (..)] attributi che inoltrano tutti i Support-v4 tipi all'implementazione all'interno dell'assembly Xamarin.Android.Support.v13.dll .
Ciò significa che uno sviluppatore può fare riferimento a questo assembly inoltrato di tipo nella propria app che soddisfa il riferimento a Xamarin.Android.Support.v4.dll da qualsiasi libreria di terze parti, consentendo comunque Xamarin.Android.Support.v13.dll di essere usato nell'app.
Assistenza NuGet
Sebbene uno sviluppatore possa aggiungere manualmente i riferimenti corretti necessari, è possibile usare NuGet per scegliere l'assembly corretto (il normale binding v4 o l'assembly v4 inoltrato dal tipo) quando viene installato il pacchetto NuGet.
Xamarin.Android.Support.v4 Il pacchetto NuGet contiene quindi la logica seguente:
Se l'app ha come destinazione il livello API 13 (Gingerbread 3.2) o versione successiva:
Xamarin.Android.Support.v13NuGet verrà aggiunto automaticamente come dipendenza- Il tipo inoltrato
Xamarin.Android.Support.v4.dllverrà fatto riferimento nel progetto
Se l'app ha come destinazione qualsiasi valore inferiore al livello API 13, si otterrà il normale Xamarin.Android.Support.v4.dll binding a cui si fa riferimento nel progetto.
È necessario usare Support-v13?
Se l'app ha come destinazione il livello API 13 o superiore e si sceglie di usare il Xamarin Android Support-v4 pacchetto NuGet, il Xamarin Android Support v13 pacchetto NuGet è una dipendenza obbligatoria.
Si ritiene che l'aumento molto minore delle dimensioni dell'app (i due file .jar differiscono per 17 kb) vale la pena la compatibilità e meno mal di testa si traduce in.
Se si vuole usare Support-v4 in un'app destinata al livello API 13 o superiore, è sempre possibile scaricare manualmente .nupkg, estrarlo e fare riferimento all'assembly.