.NET para Android aviso 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`.
Se dois ou mais tipos C# de assemblies diferentes herdarem Java.Lang.Object
e compartilharem o mesmo nome totalmente qualificado, esse nome sempre se referirá a apenas um dos tipos quando usado em arquivos de recurso do Android.
A maneira típica de resolver esse aviso é renomear os tipos para que cada nome totalmente qualificado exista apenas em um assembly.
Outra opção é adicionar [Register]
atributos nos tipos gerenciados conflitantes para que cada um tenha um nome de tipo Java exclusivo.
Uma terceira opção é qualificar os nomes de tipo com o nome do assembly nos arquivos de recurso do Android. Por exemplo, use o nome Library1.Class1, Library
qualificado pelo assembly em vez de apenas Library1.Class1
. Isso só funciona em locais onde o esquema XML permite um nome de tipo dentro de um atributo XML. Um exemplo é o class
atributo em fragment
elementos.
Se você optar por usar [Register]
atributos ou nomes qualificados para assembly em vez de renomear os tipos gerenciados, poderá ocultar os avisos adicionando a /warnasmessage:XA4214
opção à linha de comando do MSBuild ou adicionando XA4214
à $(MSBuildWarningsAsMessages)
propriedade em seu arquivo .csproj:
<PropertyGroup>
<MSBuildWarningsAsMessages>XA4214</MSBuildWarningsAsMessages>
</PropertyGroup>