範例訊息
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.view 到 Android.Views。 對於剩餘的命名空間,它會以.為分隔符來分割命名空間,並將每個部分首字母大寫。
解決方法
要解決此警告,請將每個元素改為使用其未限定的 C# 類別名稱,或為每個元素加入 xamarin:managedType 屬性以指定完全限定的 C# 名稱。