Auf Englisch lesen

Freigeben über


.NET für Android-Warnung XA1005

Beispielnachrichten

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.

Abgang

Wenn Layoutbindungen und CodeBehind aktiviert sind, wird diese Warnung für jedes Layoutelement mit dem //*/@android:id Attributsatz ausgegeben und verwendet einen vollqualifizierten Namen für den Elementtyp.

Die Warnung wird beispielsweise für beide der folgenden Elemente ausgegeben:

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

Es wird jedoch nicht für Elemente ausgegeben, die nur einen nicht qualifizierten Klassennamen verwenden:

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

Der "grundlegende Typnamenabgleich" versucht sicherzustellen, dass jeder vollqualifizierte Typname ein C#-Name und kein Java-Name ist. Zunächst wird eine kurze Liste bekannter Zuordnungen zwischen Java-Namespaces und C#-Namespaces überprüft, z. B. die Zuordnung von android.view zu Android.Views. Für alle verbleibenden Namespaces teilt er den Namespace auf . und schreibt jeden Teil groß.

Lösung

Um diese Warnung zu beheben, ändern Sie jedes Element so, dass er seinen nicht qualifizierten C#-Klassennamen verwendet, oder fügen Sie jedem Element ein xamarin:managedType Attribut hinzu, um den vollqualifizierten C#-Namen anzugeben.