Baca dalam bahasa Inggris

Bagikan melalui


.NET untuk peringatan Android XA4214

Contoh pesan

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`.

Masalah

Jika dua atau lebih jenis C# dari rakitan yang berbeda mewarisi dan Java.Lang.Object berbagi nama yang sepenuhnya memenuhi syarat yang sama, nama tersebut akan selalu merujuk hanya ke salah satu jenis saat digunakan dalam file sumber daya Android.

Solusi

Cara umum untuk mengatasi peringatan ini adalah dengan mengganti nama jenis sehingga setiap nama yang sepenuhnya memenuhi syarat hanya ada dalam satu rakitan.

Opsi lain adalah menambahkan [Register] atribut pada jenis terkelola yang bertentangan sehingga masing-masing memiliki nama jenis Java yang unik.

Opsi ketiga adalah memenuhi syarat nama jenis dengan nama rakitan dalam file sumber daya Android. Misalnya, gunakan nama Library1.Class1, Library assembly-qualified daripada hanya Library1.Class1. Ini hanya berfungsi di tempat di mana skema XML memungkinkan nama jenis dalam atribut XML. Salah satu contohnya class adalah atribut pada fragment elemen.

Jika Anda memilih untuk menggunakan [Register] atribut atau nama yang memenuhi syarat rakitan daripada mengganti nama jenis terkelola, maka Anda dapat menyembunyikan peringatan baik dengan menambahkan /warnasmessage:XA4214 sakelar ke baris perintah MSBuild atau dengan menambahkan XA4214 ke $(MSBuildWarningsAsMessages) properti dalam file .csproj Anda:

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