Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Beispielnachrichten
warning XA4214: The managed type `Library1.Class1` exists in multiple assemblies: Library1, Library2. Please refactor the managed type names in these assemblies so that they are not identical.
warning XA4214: References to the type `Library1.Class1` will refer to `Library1.Class1, Library1`.
Thema
Wenn zwei oder mehr C#-Typen aus unterschiedlichen Assemblys von Java.Lang.Object erben und denselben vollqualifizierten Namen verwenden, referenziert dieser Name in Android-Ressourcendateien immer nur auf einen der Typen.
Lösung
Die typische Methode zum Beheben dieser Warnung besteht darin, die Typen umzubenennen, sodass jeder vollqualifizierte Name nur in einer Assembly vorhanden ist.
Eine weitere Option ist das Hinzufügen [Register] von Attributen zu den in Konflikt stehenden verwalteten Typen, sodass jeder über einen eindeutigen Java-Typnamen verfügt.
Eine dritte Option besteht darin, die Typnamen mit dem Assemblynamen in den Android-Ressourcendateien zu qualifizieren. Verwenden Sie beispielsweise den assembly-qualifizierten Namen Library1.Class1, Library anstatt nur Library1.Class1. Dies funktioniert nur an Stellen, an denen das XML-Schema einen Typnamen innerhalb eines XML-Attributs zulässt. Ein Beispiel ist das class Attribut für fragment Elemente.
Wenn Sie Attributen oder assembly-qualifizierten Namen verwenden[Register], anstatt die verwalteten Typen umzubenennen, können Sie die Warnungen ausblenden, indem Sie entweder die /warnasmessage:XA4214 Option zur MSBuild-Befehlszeile hinzufügen oder zur XA4214 Eigenschaft in der CSPROJ-Datei hinzufügen$(MSBuildWarningsAsMessages):
<PropertyGroup>
<MSBuildWarningsAsMessages>XA4214</MSBuildWarningsAsMessages>
</PropertyGroup>