다음을 통해 공유


Android용 .NET 경고 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`.

문제

서로 다른 어셈블리의 두 개 이상의 C# 형식이 동일한 정규화된 이름을 상속 Java.Lang.Object 하고 공유하는 경우 해당 이름은 Android 리소스 파일에서 사용될 때 항상 형식 중 하나참조합니다.

솔루션

이 경고를 해결하는 일반적인 방법은 정규화된 각 이름이 하나의 어셈블리에만 있도록 형식의 이름을 바꾸는 것입니다.

또 다른 옵션은 충돌하는 관리되는 형식에 특성을 추가하여 [Register] 각각 고유한 Java 형식 이름을 가지도록 하는 것입니다.

세 번째 옵션은 Android 리소스 파일에서 어셈블리 이름으로 형식 이름을 한정하는 것입니다. 예를 들어, 어셈블리 정규화된 이름은 Library1.Class1, Library 단지 Library1.Class1. XML 스키마가 XML 특성 내에서 형식 이름을 허용하는 위치에서만 작동합니다. 한 가지 예는 요소의 class 특성입니다 fragment .

관리되는 형식의 이름을 바꾸는 대신 특성 또는 어셈블리 정규화된 이름을 사용하도록 [Register] 선택하는 경우 MSBuild 명령줄에 스위치를 추가 /warnasmessage:XA4214 하거나 .csproj 파일의 속성에 추가하여 XA4214 $(MSBuildWarningsAsMessages) 경고를 숨길 수 있습니다.

<PropertyGroup>
    <MSBuildWarningsAsMessages>XA4214</MSBuildWarningsAsMessages>
</PropertyGroup>