Repository navigation
.NET 11 RC 2, Android 37.2.0-rc.2.84
Pre-release
Pre-release
·
252 commits
to main
since this release
The latest .NET MAUI component is available in Visual Studio 2026 18.12 Insiders 1 or higher:
You can also download the .NET 11 RC 2 SDK, followed by:
> dotnet workload install android
...
Successfully installed workload(s) android.
To verify installation:
> dotnet workload list
Installed Workload Id Manifest Version Installation Source
--------------------------------------------------------------------------------------------
android 37.2.0-rc.2.84/11.0.100-rc.2 SDK 11.0.100-rc.2
What's Changed
- [build] Stabilize Android define constant ordering by @jonathanpeppers in #12378
$(AndroidPackVersionSuffix)=rc.2by @jonathanpeppers in #12410- Make AndroidTypeMapImplementation public by @jonathanpeppers with @Copilot in #12407
- [Mono.Android] Bind API-37.1 by @jonpryor in #12388
- [fix-finder] Clarify Parameter default interface compatibility by @github-actions[bot] in #12413
- Fix BuildArchive updates for existing jar entries by @simonrozsival with @Copilot in #11552
- [tests] use dotnet/android-samples raw URL for ActionBarSherlock zip by @jonathanpeppers in #12408
- [build] Fail incomplete Maven artifact mirroring by @jonathanpeppers in #12412
- [build] Serialize Gradle wrapper projects by @jonathanpeppers in #12424
- [Mono.Android] Avoid lock for activation constructor cache by @jonathanpeppers in #12409
- [build] Update stable Android SDK packages by @jonathanpeppers in #12371
- Add update-androidsdk-packages skill and skill-runner workflow by @jonathanpeppers in #12374
- [build] Use trimmable typemaps when PublishAot is enabled by @simonrozsival in #12419
- [Build] Make universal APK generation incremental by @simonrozsival in #12230
- [build] Increase release assembly store compression by @simonrozsival in #12415
- Prevent Android reviewer Azure CLI permission denials by @jonathanpeppers with @Copilot in #12441
- [TrimmableTypeMap] Skip redundant assembly reference scans by @simonrozsival in #12440
- [tests] Verify System.IO.Hashing 11 with NativeAOT by @jonathanpeppers in #12444
- [native] Fix concurrent FastTiming event storage by @jonathanpeppers in #12455
- [NativeAOT] Remove std::format from host compilation by @simonrozsival in #12446
- [build] Do not modify assemblies in the NuGet package cache by @jonathanpeppers in #12450
- Bump com.android.tools:r8 from 9.1.31 to 9.4.14 in /src/r8 by @dependabot[bot] in #12429
- [ci] Bound logcat capture time by @jonathanpeppers in #12471
- Avoid copying transitive task dependencies by @jonathanpeppers in #12470
- [Mono.Android] Enumify, stabilize API-37.1 by @jonpryor in #12418
- [build] Avoid staging unchanged framework assemblies by @simonrozsival in #12448
- [build] Pass class files directly to D8 and R8 by @simonrozsival in #12438
- [FastDeploy2] Clean orphan staging files by @jonathanpeppers in #12310
- [ci] Add MAUI full R2R android-arm Helix test by @simonrozsival in #12020
- [Xamarin.Android.Tools.AndroidSdk] Parse the new Android CLI
sdkmanager --listformat by @mauroa in #12466 - [skill-runner] update-androidsdk-packages: refresh stable SDK packages by @github-actions[bot] in #12442
- [build] Disable CoreCLR ReadyToRun without trimming by @jonathanpeppers in #12445
- [fix-finder] Localize missing NDK toolchain warning by @github-actions[bot] in #12481
- Allow all Azure CLI commands in Android PR Reviewer by @jonathanpeppers with @Copilot in #12462
- [build] Avoid archiving extracted library resources by @simonrozsival in #12447
- [installer] Refresh Android SDK manifest by @jonathanpeppers in #12476
- [Mono.Android] Bind API-37.2 Beta 3 by @jonpryor in #12421
- Centralize agentic workflow firewall allowlist by @jonathanpeppers in #12493
- Guard primitive array value-manager routing by @simonrozsival in #12114
- [NativeAOT] Use XAJavaInterop1 codegen target and unify GC bridge by @simonrozsival in #12133
- Fix NativeAOT custom release configurations by @jonathanpeppers in #12451
- [fix-finder] Remove stale XBC workaround comment by @github-actions[bot] in #12503
- Remove duplicate CoreCLR runtime test lane by @simonrozsival in #12508
- [tests] Read FastTiming dump from file by @simonrozsival in #12492
- [build] Copy NDK redistributables when creating runtime packs by @simonrozsival in #12494
- [native] Remove Android time-zone change monitoring by @jonathanpeppers in #12247
- [Java.Interop] Map nullable byte jagged arrays to java.lang.Byte by @simonrozsival in #12113
- [NativeAOT] Trim unused typemap Java code in Release by @simonrozsival in #12228
- [Native] Restore indexed GC temporary peers by @simonrozsival in #12509
- Fix typemap proxy metadata field ownership by @simonrozsival in #12497
- [JNIEnv] Support sbyte jagged arrays by @simonrozsival in #12115
- [tests] Use approved feed for analyzer references by @jonathanpeppers in #12520
- Test trimmable typemap behavior at runtime by @simonrozsival in #12512
- [Native] Join paths without dynamic strings by @simonrozsival in #12511
- [fix-finder] Remove null-forgiving fallback in MAM parser by @github-actions[bot] in #12521
- Run public CI for all PRs by @jonathanpeppers in #12525
- [xabt] build with & allow android projects to use JDK 25 by @jonathanpeppers in #12478
- [android-tools] Suppress Google SDK SHA-1 checksum alert by @jonathanpeppers in #12526
- [Mono.Android] Suppress DSA client-certificate compatibility alert by @jonathanpeppers in #12528
- [Mono] Fix JLO lookup for packaged MAUI satellite assemblies by @jonathanpeppers in #12496
- Remove local strings from timing by @simonrozsival in #12513
- [fix-finder] Remove redundant widget ID null suppressions by @github-actions[bot] in #12532
- Bump to dotnet/lz4@69f1e9a4 by @jonathanpeppers in #12529
- [android-tools] Fix ZIP extraction containment by @jonathanpeppers in #12527
- [build] Recommend latest supported JDK in workload metadata by @Redth in #12500
- [build] Deduplicate Android tooling defaults by @jonathanpeppers in #12539
- Bump com.android.tools:r8 from 9.4.14 to 9.4.17 in /src/r8 by @dependabot[bot] in #12557
- [ci] Govern dnceng internal pipeline by @jonathanpeppers in #12530
- [NativeAOT] Forward JCW Java annotations by @jonathanpeppers in #12549
- Remove legacy installer packaging by @jonathanpeppers in #12579
- Forward debugger ports for dotnet run by @jonathanpeppers in #12578
- Make GoogleV2 dependency test deterministic and offline by @jonathanpeppers in #12580
- [fix-finder] Enable nullable annotations in resource suppressor by @github-actions[bot] in #12583
- [build] Replace Android tools GitInfo versioning by @jonathanpeppers in #12582
- [fix-finder] Remove region directives from Mono.Options by @github-actions[bot] in #12590
- Replace simple CLR local strings by @simonrozsival in #12517
- [typemap] Preserve exported constructor throws metadata by @simonrozsival in #12564
- Optimize trimmable typemap generation by @simonrozsival in #12598
- [Mono.Android] Bind API-37.2 Beta 4 by @jonpryor in #12605
- [build] Mark AndroidSdk package as prerelease by @jonathanpeppers in #12604
- [native] Construct DSO names and directory paths without local strings by @simonrozsival in #12515
- Revert "[build] Avoid staging unchanged framework assemblies" by @simonrozsival in #12616
- [native] Avoid redundant GC bridge type checks by @simonrozsival in #12617
- [skill-runner] update-androidsdk-packages: update platform 37.2 to stable by @github-actions[bot] in #12592
- [build] Error on marshal methods with ReadyToRun by @simonrozsival in #12613
- [AndroidSdk] Avoid warnings for emulator diagnostics by @jonathanpeppers in #12606
- Fix debugging task test SDK state leak by @jonathanpeppers in #12603
- [Tests] Define managed object proxy contract by @simonrozsival in #12612
- [xabt] Default Java (JDWP) debugging to disabled by @jonathanpeppers in #12625
- [build] Fix assembly architecture mismatch message by @jonathanpeppers in #12624
- [typemap] Make trimmable typemap ACWs conditional by @simonrozsival in #12498
- [typemap] Validate exported Java fields by @simonrozsival in #12596
- [r8-obfuscation] Add R8 JNI mapping primitives by @simonrozsival in #12628
- Use debug.dotnet properties for CoreCLR and NativeAOT by @jonathanpeppers in #12626
- [NativeAOT] Stop linking and shipping libc++ and libunwind by @simonrozsival in #12523
- [fix-finder] Remove null-forgiving operator from JDK discovery by @github-actions[bot] in #12637
- Fix reference file logging to avoid logcat output by @simonrozsival in #12620
- [ci] Enable CFSClean network isolation by @jonathanpeppers in #12643
- [ci] Remove BuildSummary phase by @jonathanpeppers in #12648
- [tests] Route XBD Google Maven downloads through mirror by @jonathanpeppers in #12544
- [tests] Copy installer runtime dependencies by @jonathanpeppers in #12649
- [r8-obfuscation] Add PE metadata rebuild substrate by @simonrozsival in #12629
- [native] Remove std::format from the CoreCLR host by @simonrozsival in #12534
- [typemap] Reject duplicate generated JCW names by @simonrozsival in #12569
- [tests] Cover virtual callbacks during construction by @simonrozsival in #12566
- [native] Fix a JNI reference leak and drop new[] from jstring_array_wrapper by @simonrozsival in #12568
- [native] Replace the bundled properties map with a linked list by @simonrozsival in #12551
- [tests] Cover WebView JavaScript annotations by @simonrozsival in #12608
- [typemap] Match legacy JCW interface declarations by @simonrozsival in #12585
- Skip unchanged trimmable typemap assembly emission by @simonrozsival in #12599
- [runtime] Reduce registered peer storage allocations by @simonrozsival in #12657
- [fix-finder] Enable nullable in NDK platforms helper by @github-actions[bot] in #12651
- [typemap] Fix trimmable peer creation race by @simonrozsival in #12650
- [tests] Add Android interop benchmarks and reduce JNI overhead by @simonrozsival in #12644
- [ci] Fix MAUI R2R Helix submissions for fork PRs by @simonrozsival in #12641
- [native] Drop std::binary_semaphore and the last string in the DSO loader by @simonrozsival in #12560
- [r8-obfuscation] Rewrite managed JNI metadata from R8 mappings by @simonrozsival in #12630
- [native] Replace std::mutex with pthread_mutex_t in the CoreCLR host by @simonrozsival in #12541
- [r8] Include build metadata in app bundles by @jonathanpeppers in #12646
- [Mono.Android] Enumify, stabilize API-37.2 by @jonpryor in #12633
- [tests] Cover AppCompat Java alias casts by @simonrozsival in #12609
- [typemap] Diagnose unsupported export signatures by @simonrozsival in #12597
- [typemap] Reduce Java-to-managed proxy lookup allocations by @simonrozsival in #12619
- [fix-finder] Remove stale AIDL byte FIXMEs by @github-actions[bot] in #12671
- [typemap] Honor explicit interface invokers by @simonrozsival in #12565
- [xabt] Disable legacy assembly fixups for trimmable typemap by @simonrozsival in #12659
- [native] Replace the AndroidSystem path statics with a POD buffer by @simonrozsival in #12552
- [native] Remove the libc++ dependencies from the CoreCLR host's startup path by @simonrozsival in #12570
- [fix-finder] Remove unused imports from Adb task by @github-actions[bot] in #12698
- [typemap] Diagnose unsupported constructor shapes by @simonrozsival in #12567
- [fix-finder] Enable nullable analysis for RunActivity by @github-actions[bot] in #12694
- [native] Remove the libc++ dependencies from the CoreCLR host's timing by @simonrozsival in #12545
- [tests] Cover interface-valued Java collections by @simonrozsival in #12614
- [Java.Interop] Lazily allocate peer member caches by @simonrozsival in #12701
- [Java.Interop] Bump generator's minimum API level to 24 and wire it through a CLI option by @simonrozsival in #12682
- [r8-obfuscation] Rewrite trimmable typemap JNI metadata by @simonrozsival in #12631
- [native] Remove libc++ dependencies from the CoreCLR assembly store by @simonrozsival in #12571
- [android-tools] Move SM02729 suppression to reported line by @jonathanpeppers in #12720
- [xabt] Move trimmable typemap tasks to net11 by @simonrozsival in #12678
- [typemap] Preserve supported Unicode JCW names by @simonrozsival in #12607
- [native] Stop linking libc++ into the CoreCLR and NativeAOT runtimes by @simonrozsival in #12572
- [flaky-ci] Pin test slicer to repo-local runtime by @simonrozsival in #12706
- [tests] Move type map rewrite tests to net11 by @jonathanpeppers in #12736
- [typemap] Reduce generator allocations with modern .NET APIs by @simonrozsival in #12724
- [tests] Fix duplicate MockBuildEngine constructor by @simonrozsival in #12741
- Bump Android product version to 37.2 by @jonathanpeppers in #12728
- [Java.Interop] Reduce string member-cache miss overhead by @simonrozsival in #12725
- [flaky-ci] Use embedded jars in desugar test by @simonrozsival in #12710
- [typemap] Stream typemap fingerprints and PE output by @simonrozsival in #12602
- Localize the Android workload description by @jonathanpeppers in #12740
- [ci] Diagnose logcat capture failures and retry the task once by @mmitche in #12744
- [r8] Add configurable private-member obfuscation and optimization by @jonathanpeppers in #12668
- [flaky-ci] Isolate JavaSideActivation GREF leak check by @simonrozsival in #12716
- [native] Preserve borrowed NativeAOT JNI references by @simonrozsival in #12730
- [fix-finder] Localize missing Java wrapper XML error by @github-actions[bot] in #12737
- [flaky-ci] Retry transient ADB install failures by @simonrozsival in #12711
- [flaky-ci] Stabilize BenchmarkDotNet device test results by @simonrozsival in #12718
- [flaky-ci] Classify pre-TLS failures in trusted certificate test by @simonrozsival in #12714
- [native] Keep DSO callback state alive after timeout by @simonrozsival in #12729
- [tests] Restore MockBuildEngine warning constructor by @jonathanpeppers in #12755
- [Java.Interop] Use .NET 11 assembly version by @jonathanpeppers in #12749
- [r8] Validate obfuscation mode only when R8 is enabled by @jonathanpeppers in #12753
- [Java.Interop] Keep JNI reference owners alive during calls by @jonathanpeppers in #12754
- [NativeAOT] Let the SDK select runtime packs by @jonathanpeppers in #12750
- [native] Harden CoreCLR environment override parsing by @simonrozsival in #12731
- [fix-finder] Update pull request guidance link by @github-actions[bot] in #12776
- [fix-finder] [xabt] Use XA4264 when ACW wrapper XML is missing by @github-actions[bot] in #12774
- [CodeQL] Add inline suppression justifications by @jonathanpeppers in #12784
- docs: update Android runtime diagnostics for .NET 11 by @vitek-karas in #12783
- [fix-finder] Enable nullable annotations in Android SDK Platform helper by @github-actions[bot] in #12770
- Bump System.IO.Hashing to 10.0.12 by @jonathanpeppers in #12769
- [flaky-ci] Stabilize AndroidMessageHandler cancellation rewind test by @simonrozsival in #12712
- [CoreCLR] Remove assembly store decompression cache by @simonrozsival in #12780
- Bump System.CodeDom from 10.0.11 to 10.0.12 by @jonathanpeppers in #12768
- [fix-finder] [installer] Enable nullable annotations for JdkArchive by @github-actions[bot] in #12787
- [flaky-ci] Isolate TryFindClass JNI leak checks by @simonrozsival in #12709
- [net] Make authentication modules trimmable by @simonrozsival in #12791
- Fix Windows mdoc framework-root path by @jonathanpeppers in #12808
- Update repository links to dotnet/android by @RoderickIveans in #12790
- Remove build-time Java resources from APKs by @simonrozsival in #12792
- Fix AIDL one-way proxy generation by @jonathanpeppers in #12794
- [fix-finder] Enable nullable annotations for LLVM attribute set by @github-actions[bot] in #12812
- Rename solution/workspace to Microsoft.Android by @RoderickIveans in #12804
- [TrimmableTypeMap] Trim value-type dictionary instantiations by @simonrozsival in #12793
- Remove ignored native image assembly-store aliases by @simonrozsival in #12811
- [Mono.Android] Fix AgentIcon namespace casing by @jonathanpeppers in #12815
- [fix-finder] Remove redundant null-forgiving operator by @github-actions[bot] in #12818
- [fix-finder] Localize unsupported Java reference error by @github-actions[bot] in #12803
- [Mono.Android] Align CoreCLR activation caching with Mono by @jonathanpeppers in #12816
- Bump com.android.tools:r8 from 9.4.17 to 9.4.24 in /src/r8 by @dependabot[bot] in #12819
- [Java.Interop] Use native UTF-8 JNI remaps by @simonrozsival in #12795
- [flaky-ci] Make logcat capture bounded and non-gating by @simonrozsival in #12708
- [fix-finder] Fix Java properties default encoding by @github-actions[bot] in #12838
- [fix-finder] Document NotificationManager.FromContext by @github-actions[bot] in #12836
- [fix-finder] Remove null-forgiving operator from activity names by @github-actions[bot] in #12831
- [tests] Cover interface method desugaring parity by @simonrozsival in #12610
- [NativeAOT] Preserve GC bridge temporary peers through R8 by @jonathanpeppers in #12828
- [Mono.Android] Fix handwritten build warnings by @simonrozsival in #12834
- [Xamarin.Android.Build.Tasks] Remove R8 assembly rewriter by @simonrozsival in #12846
- Fix API 37 generated namespace casing by @dependabot[bot] in #12839
- [flaky-ci] Isolate Gradle state in CI by @simonrozsival in #12707
- [CoreCLR/NativeAOT] Use a no-GC region during Android startup by @simonrozsival in #12782
- [CoreCLR] Avoid main-thread dispatch for unknown P/Invokes by @simonrozsival in #12863
- [release/11.0.1xx-rc2] Fix JNI jchar marshalling on CoreCLR by @github-actions[bot] in #12881
- [release/11.0.1xx-rc2] [build] Avoid duplicate extension runtime packs by @github-actions[bot] in #12883
- [release/11.0.1xx-rc2] [build] Use command-line tools 21.0 by default by @github-actions[bot] in #12904
- [release/11.0.1xx-rc2] [Xamarin.Android.Tools.AndroidSdk] Include PDB in package by @github-actions[bot] in #12924
New Contributors
- @RoderickIveans made their first contribution in #12790
Full Changelog: 37.0.0-rc.1.2257...37.2.0-rc.2.84