.NET für Android-Warnung XA4214
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`.
Wenn zwei oder mehr C#-Typen aus unterschiedlichen Assemblys erben Java.Lang.Object
und denselben vollqualifizierten Namen gemeinsam verwenden, verweist dieser Name immer auf einen der Typen, wenn er in Android-Ressourcendateien verwendet wird.
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 assemblyqualifizierten Namen Library1.Class1, Library
statt 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 Attribute oder assemblyqualifizierte Namen verwenden[Register]
, anstatt die verwalteten Typen umzubenennen, können Sie die Warnungen ausblenden, indem Sie entweder die /warnasmessage:XA4214
Option zur Befehlszeile MSBuild hinzufügen oder der $(MSBuildWarningsAsMessages)
Eigenschaft in der CSPROJ-Datei hinzufügenXA4214
:
<PropertyGroup>
<MSBuildWarningsAsMessages>XA4214</MSBuildWarningsAsMessages>
</PropertyGroup>