閱讀英文

共用方式為


適用於 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 資源檔中使用時只參考 其中一種 類型。

解決方案

解決此警告的一般方式是重新命名類型,讓每個完整名稱只存在於一個元件中。

另一個選項是在衝突的 Managed 類型上新增 [Register] 屬性,讓每個類型都有唯一的 Java 類型名稱。

第三個選項是使用Android資源檔中的元件名稱來限定類型名稱。 例如,使用元件限定名稱 Library1.Class1, Library ,而不只是 Library1.Class1。 這隻適用於 XML 架構允許 XML 屬性內類型名稱的位置。 其中一個範例是 class 元素上的 fragment 屬性。

如果您選擇使用[Register]屬性或元件限定名稱,而不是重新命名 Managed 類型,您可以將 參數新增至 MSBuild 命令行,或新增/warnasmessage:XA4214XA4214$(MSBuildWarningsAsMessages) .csproj 檔案中的 屬性來隱藏警告:

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