Advertencia XA1005 de .NET para Android

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.

Cuestión

Cuando Enlaces de diseño y código subyacente están habilitados, se emitirá esta advertencia para cada elemento de diseño que tenga el atributo //*/@android:id establecido y utilice 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" />

Sin embargo, no se emitirá para los elementos que utilicen únicamente un nombre de clase sin calificar, como:

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

La coincidencia básica de nombres de tipos intenta garantizar que cualquier nombre de tipo completamente calificado sea un nombre de C# en lugar de uno 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 cualquier espacio de nombres restante, divide el espacio de nombres por . y pone en mayúscula cada parte.

Solución

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