Ostrzeżenie .NET dla Android XA1040

Przykładowe komunikaty

warning XA1040: The NativeAOT runtime on Android is an experimental feature and not yet suitable for production use. File issues at: https://github.com/dotnet/android/issues

Problematyka

NativeAOT to eksperymentalna opcja środowiska uruchomieniowego dla platformy .NET dla systemu Android. Jeśli włączysz funkcję NativeAOT przy użyciu $(PublishAot)=true dla obsługiwanego publikowania lub zoptymalizowanej kompilacji, zostanie wygenerowane to ostrzeżenie, aby poinformować, że funkcja NativeAOT nie nadaje się jeszcze do użytku produkcyjnego.

Obsługiwane środowiska uruchomieniowe to:

  • CoreCLR (ustawienie domyślne dla aplikacji systemu Android w .NET 11 lub nowszych)
  • MonoVM, domyślny dla .NET 10 i wcześniejszych wersji oraz dostępny za pośrednictwem $(UseMonoRuntime)=true tylko na obsługiwanych platformach docelowych
  • NativeAOT, wybrany za pomocą $(PublishAot)=true dla obsługiwanego publikowania lub zoptymalizowanych kompilacji

W .NET 11 i nowszych, $(UseMonoRuntime)=true jest odrzucane z błędem NETSDK1242; nie jest to obejściem CoreCLR.

Rozwiązanie

Aby wyciszyć to ostrzeżenie, możesz wykonać następujące czynności:

  • Użyj kompatybilnego środowiska uruchomieniowego, usuwając $(PublishAot)=true z pliku projektu.

  • Ustaw $(EnablePreviewFeatures) na true w pliku projektu, aby potwierdzić eksperymentalny charakter funkcji NativeAOT.