Aviso do .NET para Android XA1040

Mensagens de exemplo

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

Questão

NativeAOT é uma opção de runtime experimental para .NET para Android. Ao habilitar o NativeAOT por meio de $(PublishAot)=true para uma publicação com suporte ou uma compilação otimizada, este aviso é emitido para indicar que o NativeAOT ainda não é adequado para uso em produção.

Os runtimes com suporte são:

  • CoreCLR (o padrão para aplicativos Android no .NET 11 e posterior)
  • MonoVM, o padrão para .NET 10 e versões anteriores e disponível por meio de $(UseMonoRuntime)=true somente em destinos com suporte
  • NativeAOT, selecionado por $(PublishAot)=true para publicação permitida ou builds otimizados

No .NET 11 e versões posteriores, $(UseMonoRuntime)=true é rejeitado com o erro NETSDK1242; não é uma forma de contornar o CoreCLR.

Solução

Para silenciar este aviso, você pode:

  • Use um runtime com suporte removendo $(PublishAot)=true do arquivo de projeto.

  • Defina $(EnablePreviewFeatures) como true no arquivo de projeto para reconhecer a natureza experimental do NativeAOT.