Advertencia XA1040 de .NET para Android

Mensajes de ejemplo

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

Cuestión

NativeAOT es una opción experimental en tiempo de ejecución para .NET para Android. Cuando habilita NativeAOT a través de $(PublishAot)=true para una publicación admitida o una compilación optimizada, se genera esta advertencia para indicar que NativeAOT aún no es adecuado para su uso en producción.

Los entornos de ejecución admitidos son:

  • CoreCLR (el valor predeterminado para las aplicaciones Android en .NET 11 y versiones posteriores)
  • MonoVM, el valor predeterminado en .NET 10 y versiones anteriores y disponible a través de $(UseMonoRuntime)=true solo en plataformas compatibles
  • NativeAOT, seleccionado por $(PublishAot)=true para compilaciones optimizadas o de publicación compatibles

En .NET 11 y versiones posteriores, $(UseMonoRuntime)=true se rechaza con el error NETSDK1242; no es una vía de escape de CoreCLR.

Solución

Para silenciar esta advertencia, puede:

  • Use un entorno de ejecución compatible quitando $(PublishAot)=true del archivo del proyecto.

  • Establece $(EnablePreviewFeatures) en true en tu archivo de proyecto para reconocer el carácter experimental de NativeAOT.