Skip to content

Fix known issues with NativeAOT #8724

Description

@jonathanpeppers

Android application type

.NET Android (net7.0-android, net8.0-android, etc.)

Affected platform version

.NET 9+

Description

Related: https://github.com/xamarin/java.interop/issues/1192
Related: dotnet/java-interop#1157

When setting $(EnableAotAnalyzer) to true, there are several warnings we will suppress for now. These will likely work under Mono, but will need to be fixed one day in .NET 10 or some future release that supports NativeAOT.

Ignoring AOT warnings like a reasonable place to start, so we can enable the analyzer and not introduce new warnings.

Creating an issue for now, so I can link to this issue from C# code comments.

Steps to Reproduce

Build Mono.Android.csproj with EnableAotAnalyzer=true.

Did you find any workaround?

No response

Relevant log output

No response

Activity

  1. jonathanpeppers commented on Feb 27, 2024

    @jonathanpeppers
    MemberAuthor

    Update

    We'll probably actually suppress the warnings like:

    // FIXME: https://github.com/xamarin/xamarin-android/issues/8724
    // IL3050 disabled in source: if someone uses NativeAOT, they will get the warning.
    #pragma warning disable IL3050
    var dynamic = new DynamicMethod (DynamicMethodNameCounter.GetUniqueName (), ret_type, param_types, typeof (DynamicMethodNameCounter), true);
    #pragma warning restore IL3050
  2. changed the title [-][NativeAOT] fix places we use `[UnconditionalSuppressMessage ("AOT")]`[/-] [+]Fix known issues with NativeAOT[/+] on Feb 27, 2024
  3. jonathanpeppers commented on Jul 2, 2024

    @jonathanpeppers
    MemberAuthor

    We will need to suppress warnings from the trimmer, but rely on warnings coming from the AOT compiler (ILC):

  4. added
    enhancementProposed change to current functionality.
    on Nov 1, 2024
  5. added theissue type on Apr 3, 2025
  6. jonathanpeppers commented on Aug 12, 2026

    @jonathanpeppers
    MemberAuthor

    Closing as superseded. The original prerequisite work is captured and completed in #11860. Remaining NativeAOT implementation and validation work is tracked by the trimmable type map epic #10788, warning cleanup #10794 and #11012, and functional validation #10793.

  7. locked and limited conversation to collaborators on Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: App RuntimeIssues in `libmonodroid.so`.Area: App+Library BuildIssues when building Library projects or Application projects.Area: NativeAOTIssues that only occur when using NativeAOT.enhancementProposed change to current functionality.

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions