Partager via


Avertissement .NET pour Android XA1005

Exemples de messages

warning XA1005: Attempting basic type name matching for element with ID '@+id/text1' and type 'android.widget.TextView'
warning XA1005: If basic type name matching fails, please add a `xamarin:managedType` attribute to the element to specify the fully qualified managed type name of the element.

Problème

Lorsque les liaisons de disposition et code-behind sont activées, cet avertissement est émis pour chaque élément de disposition dont l’attribut //*/@android:id est défini et utilise un nom complet pour le type d’élément.

Par exemple, l’avertissement est émis pour les deux éléments suivants :

<android.widget.TextView
    android:id="@+id/text1" />
<Android.Widget.TextView
    android:id="@+id/text2" />

Mais il ne sera pas émis pour les éléments qui utilisent simplement un nom de classe non qualifié comme :

<TextView
    android:id="@+id/text1" />

Le « nom de type de base correspondant » tente de s’assurer que tout nom de type complet est un nom C# plutôt qu’un nom Java. Tout d’abord, il vérifie une courte liste de mappages connus entre les espaces de noms Java et les espaces de noms C#, tels que le mappage à android.view Android.Views. Pour tous les espaces de noms restants, il fractionne l’espace de noms et . met en majuscule chaque partie.

Solution

Pour résoudre cet avertissement, modifiez chaque élément pour utiliser son nom de classe C# non qualifié ou ajoutez un xamarin:managedType attribut à chaque élément pour spécifier le nom C# complet.