Compartilhar via


Aviso do .NET para Android 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.

Questão

Quando as Associações de Layout e Code-Behind estiverem habilitadas, esse aviso será emitido para cada elemento de layout que tenha o //*/@android:id conjunto de atributos 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 não será emitido para elementos que utilizam apenas um nome de classe sem qualificação, como:

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

O "mapeamento de nome de tipo básico" tenta garantir que qualquer nome totalmente qualificado de tipo seja um nome de C# em vez de um nome de 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 capitaliza cada parte.

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.