Skip to content

Commit

Permalink
[Java.Interop.GenericMarshaler] fix trimmer warnings
Browse files Browse the repository at this point in the history
Context: dotnet/android#9846

When trying to build `Mono.Android-Tests` for NativeAOT, I get many
warnings like this (that are upgraded to errors):

    src\Java.Interop.GenericMarshaler\Java.Interop.GenericMarshaler\JniPeerInstanceMethodsExtensions.cs(10874,17):
    error IL2091: 'T' generic argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicConstructors', 'DynamicallyAccessedMemberTypes.NonPublicConstructors' in 'Java.Interop.JniRuntime.JniValueManager.GetValueMarshaler<T>()'. The generic parameter 'T16' of 'Java.Interop.GenericMarshaler.JniPeerInstanceMethodsExtensions.InvokeGenericVirtualObjectMethod<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>(JniInstanceMethods, String, IJavaPeerable, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
    Build failed with 2992 error(s) in 4.8s

To solve this here, we can import:

    <Import Project="..\..\build-tools\trim-analyzers\trim-analyzers.props" />

To see all the warnings *here*, and then I added the missing
attributes to solve the warnings.
  • Loading branch information
jonathanpeppers committed Feb 25, 2025
1 parent 471afd4 commit b609a01
Show file tree
Hide file tree
Showing 3 changed files with 6,660 additions and 373 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
</PropertyGroup>

<Import Project="..\..\TargetFrameworkDependentValues.props" />
<Import Project="..\..\build-tools\trim-analyzers\trim-analyzers.props" />

<PropertyGroup>
<OutputPath>$(ToolOutputFullPath)</OutputPath>
Expand Down
Loading

0 comments on commit b609a01

Please sign in to comment.