A .NET keretrendszer androidos figyelmeztetése XA1005

Példaüzenetek

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.

Probléma

Ha engedélyezve vannak az elrendezéskötések és a mögöttes kód , ez a figyelmeztetés jelenik meg minden olyan elrendezési elem esetében, amely rendelkezik az //*/@android:id attribútumkészlettel, és az elemtípushoz egy teljes nevet használ.

A figyelmeztetés például a következő elemek mindegyikére ki lesz adva:

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

A rendszer azonban nem bocsátja ki azokat az elemeket, amelyek csak egy nem minősített osztálynevet használnak, például:

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

Az "alapszintű típusnévegyezés" megpróbálja biztosítani, hogy a teljes típusnév ne Java-név, hanem C# név legyen. Először ellenőrzi a Java-névterek és a C#-névterek közötti ismert leképezések rövid listáját, például a következőre való leképezést android.viewAndroid.Views. A fennmaradó névterek esetében felosztja a névteret . , és nagybetűssé teszi az egyes részeket.

Megoldás

A figyelmeztetés megoldásához módosítsa az egyes elemeket a nem minősített C#-osztálynév használatára, vagy adjon hozzá egy xamarin:managedType attribútumot az egyes elemekhez a teljes C# név megadásához.