Leer en inglés

Compartir a través de


Advertencia de .NET para Android XA1005

Mensajes de ejemplo

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.

Problema

Cuando los enlaces de diseño y el código subyacente están habilitados, esta advertencia se emitirá para cada elemento de diseño que tenga el //*/@android:id conjunto de atributos y use un nombre completo para el tipo de elemento.

Por ejemplo, se emitirá la advertencia para ambos elementos siguientes:

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

Pero no se emitirá para los elementos que usan solo un nombre de clase no completo, como:

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

La "coincidencia de nombre de tipo básico" intenta asegurarse de que cualquier nombre de tipo completo es un nombre de C# en lugar de un nombre de Java. En primer lugar, comprueba una breve lista de asignaciones conocidas entre espacios de nombres de Java y espacios de nombres de C#, como la asignación de android.view a Android.Views. Para los espacios de nombres restantes, divide el espacio de nombres en . y en mayúsculas cada parte.

Solución

Para resolver esta advertencia, cambie cada elemento para que use su nombre de clase de C# sin calificar o agregue un xamarin:managedType atributo a cada elemento para especificar el nombre completo de C#.