Delen via


.NET voor Android-waarschuwing XA1005

Voorbeeldberichten

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.

Issue

Wanneer indelingsbindingen en Code-Behind zijn ingeschakeld, wordt deze waarschuwing verzonden voor elk indelingselement met de //*/@android:id kenmerkenset en wordt een volledig gekwalificeerde naam voor het elementtype gebruikt.

De waarschuwing wordt bijvoorbeeld verzonden voor beide van de volgende elementen:

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

Maar deze wordt niet verzonden voor elementen die alleen een niet-gekwalificeerde klassenaam gebruiken, zoals:

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

De "basistypenaam matching" probeert ervoor te zorgen dat elke volledig gekwalificeerde typenaam een C#-naam is in plaats van een Java-naam. Eerst controleert het een korte lijst met bekende toewijzingen tussen Java-naamruimten en C#-naamruimten, zoals de toewijzing van android.view naar Android.Views. Voor eventuele resterende naamruimten wordt de naamruimte gesplitst op . en wordt elk deel met een hoofdletter geschreven.

Solution

Als u deze waarschuwing wilt oplossen, wijzigt u elk element om de niet-gekwalificeerde C#-klassenaam te gebruiken of voegt u een xamarin:managedType kenmerk toe aan elk element om de volledig gekwalificeerde C#-naam op te geven.