.NET för Android-varning XA1005

Exempelmeddelanden

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.

Problematik

När layoutbindningar och kod bakom aktiveras genereras den här varningen för varje layoutelement som har attributuppsättningen //*/@android:id och använder ett fullständigt kvalificerat namn för elementtypen.

Varningen genereras till exempel för båda följande element:

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

Men det kommer inte att genereras för element som bara använder ett okvalificerat klassnamn som:

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

Den "grundläggande typnamnmatchningen" försöker se till att alla fullständigt kvalificerade typnamn är ett C#-namn i stället för ett Java-namn. Först kontrollerar den en kort lista över kända mappningar mellan Java-namnområden och C#-namnområden, till exempel mappning av android.view till Android.Views. För eventuella återstående namnområden delar den upp namnområdet på . och skriver versalt (kapitaliserar) varje del.

Lösning

Lös den här varningen genom att ändra varje element så att det använder sitt okvalificerade C#-klassnamn eller lägga till ett xamarin:managedType attribut till varje element för att ange det fullständigt kvalificerade C#-namnet.