Ostrzeżenie XA4257 platformy .NET dla systemu Android

Przykładowy komunikat

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.

Issue

Mapa typów możliwych do przycinania znalazła typ elementu równorzędnego Java, którego zarządzany typ podstawowy, zaimplementowany interfejs lub ograniczenie parametru ogólnego odwołuje się do typu, który nie jest obecny w rozpoznanym zestawie zestawów.

Może się tak zdarzyć, gdy pakiety NuGet w grafie powiązań platformy Android zostały skompilowane względem różnych wersji innego pakietu powiązań. Typ może być nieużywany przez aplikację, ale nativeAOT kompiluje zamknięty świat i musi z niecierpliwością rozpoznawać zarządzane typy rooted.

Rozwiązanie

Jeśli aplikacja używa pominiętego typu, zaktualizuj pakiety NuGet, których dotyczy problem, tak aby typ, do którego się odwołują, istniał, lub przejdź na wersje pakietów powiązań, które są ze sobą zgodne.

Jeśli aplikacja nie używa pominiętego typu, nie trzeba podejmować żadnych działań. Typ zostanie pominięty z mapy typu możliwego do przycinania, więc funkcja NativeAOT nie kończy się niepowodzeniem podczas rozpoznawania nieużywanych nieaktualnych metadanych.