.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.

問題

當啟用 Layout Bindings 與 Code-Behind 時,每個設定 //*/@android:id 屬性且使用完整限定名稱的 layout 元素都會發出此警告。

例如,警告 針對以下兩個元素發出:

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

但對於僅使用未限定類別名稱的元素,例如:它不會被發送。

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

「基本型別名稱匹配」試圖確保任何完全限定的型別名稱都是 C# 名稱,而非 Java 名稱。 首先,它會檢查 Java 命名空間與 C# 命名空間之間已知的對應清單,例如 映射 android.viewAndroid.Views。 對於剩餘的命名空間,它會以.為分隔符來分割命名空間,並將每個部分首字母大寫。

解決方法

要解決此警告,請將每個元素改為使用其未限定的 C# 類別名稱,或為每個元素加入 xamarin:managedType 屬性以指定完全限定的 C# 名稱。