Ler em inglês

Compartilhar via


.NET para Android aviso XA1005

Mensagens de exemplo

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

Quando as Associações de Layout e o Code-Behind estiverem habilitados, esse aviso será emitido para cada elemento de layout que tenha o //*/@android:id atributo definido e use um nome totalmente qualificado para o tipo de elemento.

Por exemplo, o aviso será emitido para ambos os seguintes elementos:

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

Mas ele não será emitido para elementos que usam apenas um nome de classe não qualificado como:

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

A "correspondência básica de nome de tipo" tenta garantir que qualquer nome de tipo totalmente qualificado seja um nome C# em vez de um nome Java. Primeiro, ele verifica uma pequena lista de mapeamentos conhecidos entre namespaces Java e namespaces C#, como o mapeamento de android.view para .Android.Views Para todos os namespaces restantes, ele divide o namespace e coloca cada parte em . maiúscula.

Solução

Para resolver esse aviso, altere cada elemento para usar seu nome de classe C# não qualificado ou adicione um xamarin:managedType atributo a cada elemento para especificar o nome C# totalmente qualificado.