Прочитать на английском

Поделиться через


Предупреждение .NET для Android XA1005

Примеры сообщений

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.

Проблема

При включении привязок макета и code-Behind это предупреждение будет создано для каждого элемента макета с //*/@android:id набором атрибутов и использует полное имя для типа элемента.

Например, предупреждение будет выдаваться для обоих из следующих элементов:

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

Но он не будет выдаваться для элементов, которые используют только неквалифицированное имя класса, например:

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

"Базовое сопоставление имен типов" пытается убедиться, что любое полное имя типа — это имя C#, а не имя Java. Сначала он проверяет краткий список известных сопоставлений между пространствами имен Java и пространствами имен C#, например сопоставление android.view с Android.Views. Для всех оставшихся пространств имен он разделяет пространство имен на . каждую часть и прописывает каждую часть.

Решение

Чтобы устранить это предупреждение, измените каждый элемент, чтобы использовать его имя класса C#, или добавьте xamarin:managedType атрибут для каждого элемента, чтобы указать полное имя C#.