Upozornění XA4257 pro .NET pro Android

Ukázková zpráva

warning XA4257: Skipping Java peer type 'Google.Android.Material.Shadow.ShadowDrawableWrapper' from assembly 'Xamarin.Google.Android.Material' because referenced type 'AndroidX.AppCompat.Graphics.Drawable.DrawableWrapper' from assembly 'Xamarin.AndroidX.AppCompat.AppCompatResources' could not be resolved in '/home/user/.nuget/packages/xamarin.androidx.appcompat.appcompatresources/1.6.0/lib/net6.0-android31.0/Xamarin.AndroidX.AppCompat.AppCompatResources.dll'. This type will not be included in the trimmable type map.

Problém

Mapa ořezatelných typů našla partnerský typ jazyka Java, jehož spravovaný základní typ, implementované rozhraní nebo omezení parametru obecného typu odkazuje na typ, který není přítomen v sadě vyřešených sestavení.

K tomu může dojít, když byly balíčky NuGet v grafu vazby Pro Android vytvořeny proti různým verzím jiného balíčku vazby. Aplikace tento typ nemusí používat, ale NativeAOT kompiluje v rámci uzavřeného světa a musí předem vyřešit kořenově dosažitelné spravované typy.

Řešení

Pokud vaše aplikace používá přeskočený typ, aktualizujte ovlivněné balíčky NuGet tak, aby odkazovaný typ existoval, nebo aktualizujte verze vazeb balíčků, které jsou vzájemně kompatibilní.

Pokud vaše aplikace nepoužívá typ, který byl přeskočen, není třeba podnikat žádné kroky. Tento typ je vynechán z mapy typů určené k ořezávání, aby NativeAOT neselhalo při řešení nepoužívaných zastaralých metadat.