範例訊息
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.
問題
When Layout Bindings and Code-Behind are enabled, this warning will be emitted for every layout element that has the //*/@android:id attribute set and uses a fully qualified name for the element type.
For example, the warning will be emitted for both of the following elements:
<android.widget.TextView
android:id="@+id/text1" />
<Android.Widget.TextView
android:id="@+id/text2" />
But it will not be emitted for elements that use just an unqualified class name like:
<TextView
android:id="@+id/text1" />
The "basic type name matching" tries to ensure that any fully qualified type name is a C# name rather than a Java name. First it checks a short list of known mappings between Java namespaces and C# namespaces, such as the mapping of android.view to Android.Views. For any remaining namespaces, it splits the namespace on . and capitalizes each part.
解決方法
To resolve this warning, change each element to use its unqualified C# class name or add a xamarin:managedType attribute to each element to specify the fully qualified C# name.