From efbce2eb2ee06d35658e3c81d295c7db888c25eb Mon Sep 17 00:00:00 2001 From: Simon Rozsival Date: Mon, 25 May 2026 11:23:59 +0200 Subject: [PATCH 1/8] Remove ManagedPeer from trimmable type map apps Disable Java.Interop ManagedPeer native registration for trimmable type map builds and remove the Java ManagedPeer class from the trimmable runtime jar. The trimmable path registers native methods through generated JCW static initializers, so ManagedPeer is dead weight there. Add coverage to ensure trimmable runtime artifacts, generated Java, and built APK dex files do not reference ManagedPeer. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- external/Java.Interop | 2 +- ...soft.Android.Sdk.TypeMap.Trimmable.targets | 4 ++ .../TrimmableTypeMapBuildTests.cs | 66 ++++++++++++++++++- src/java-runtime/java-runtime.targets | 2 +- 4 files changed, 70 insertions(+), 4 deletions(-) diff --git a/external/Java.Interop b/external/Java.Interop index d546a083f31..51bade624ce 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit d546a083f3139243243959fbf1d9b7d35f6c2cbf +Subproject commit 51bade624ceeabf9603fc77a6f4f9d9682860fe8 diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.Trimmable.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.Trimmable.targets index b040052577f..a02d1dbec37 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.Trimmable.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.Trimmable.targets @@ -33,6 +33,10 @@ + + -