.NET 11 Preview 4, Android 36.99.0-preview.4.137
Pre-release
Pre-release
·
269 commits
to main
since this release
This release is not yet available from the Visual Studio installer. Download the .NET 11 Preview 4 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 36.99.0-preview.4.137/11.0.100-preview.4 SDK 11.0.100-preview.4
What's Changed
- $(AndroidPackVersionSuffix)=preview.4; main is .NET 11 preview 4 by @jonathanpeppers in #10984
- Use shared EmulatorRunner from android-tools for BootAndroidEmulator by @rmarinho in #10949
- Bump com.android.tools:r8 from 9.0.32 to 9.1.31 in /src/r8 by @dependabot[bot] in #10992
- Move
AddKeepAlivestrimmer step to post-trimming task by @sbomer in #10952 - Fix
dotnet runfailing with multiple AVDs present by @rmarinho in #11001 - Root [Export] callback delegates to prevent GC on CoreCLR by @Copilot in #10997
- Track AndroidManifestOverlay changes in _ManifestMerger by @Redth in #11007
- [TrimmableTypeMap] Implement runtime TypeManager, ValueManager, and JavaConvert by @simonrozsival in #10967
- [TrimmableTypeMap] Emit direct RegisterNatives with UTF-8 RVA data by @simonrozsival in #10988
- [TrimmableTypeMap] Add ManifestGenerator by @simonrozsival in #10991
- [TrimmableTypeMap] Use JniNativeMethod for RegisterNatives bootstrap by @simonrozsival in #11002
- [TrimmableTypeMap] Fix JniNameToJavaName by @simonrozsival in #11032
- [TrimmableTypeMap] Fix NativeCallbackName and DeclaringType derivation from Connector by @simonrozsival in #11033
- Add "tests" Copilot skill with test discovery and source-to-test mapping by @simonrozsival in #11014
- [build] Add
build-summarystage toXamarin.Android-PRpipeline by @jonathanpeppers in #10982 - Move CheckForObsoletePreserveAttribute into PostTrimmingPipeline by @Copilot in #11009
- Fix emulator boot and deploy flow for
dotnet runby @rmarinho in #10969 - Add ci-status Copilot skill for PR build investigation by @simonrozsival in #11024
- Move
RemoveResourceDesignertrimmer step to post-trim pipeline by @sbomer in #10977 - Enable more tests to run on all 3 runtimes, part 13 by @grendello in #10635
- [Mono.Android] Bind API-37 Beta 3 by @jonpryor in #11038
- [build] Cache Gradle downloads between CI runs by @jonathanpeppers in #10986
- Handle transient ConnectException globally in on-device HTTP tests by @Copilot in #11057
- [TrimmableTypeMap] Assembly-level manifest attribute scanning by @simonrozsival in #11035
- [TrimmableTypeMap] Fix thread safety in TrimmableTypeMap.Initialize by @Copilot in #11049
- Move FixAbstractMethodsStep out of ILLink process by @sbomer in #11029
- [TrimmableTypeMap] Extract TrimmableTypeMapGenerator from MSBuild task by @simonrozsival in #11034
- Remove obsolete
RemoveAttributesBasefromMicrosoft.Android.Sdk.ILLinkby @Copilot in #11061 - [TrimmableTypeMap] Fix [Export] JNI signature mapping for non-primitive parameter types by @Copilot in #11051
- [TrimmableTypeMap] Fix manifest builder gaps: SupportsGLTexture, UsesPermissionFlags, RoundIcon, dedup by @simonrozsival in #11044
- [Tests] Bump default AGP to 9.1.0 for compileSdk 36 compatibility by @simonrozsival in #11043
- Update nullable review rule to check project-level setting by @jonathanpeppers in #11073
- Move RemoveResourceDesignerStep out of ILLink process by @sbomer in #11039
- [skills] Improve android-reviewer skill based on eval findings by @jonathanpeppers in #11075
- [TrimmableTypeMap] Build pipeline: targets, stubs, manifest integration, feature switches by @simonrozsival in #11036
- [TrimmableTypeMap] Add typed logger interface by @simonrozsival in #11095
- [TrimmableTypeMap] Pass TargetType and InvokerType through JavaPeerProxy constructor by @simonrozsival in #11092
- [TrimmableTypeMap] Fix UCO constructor activations by @simonrozsival in #11094
- [TrimmableTypeMap] Use proxy associations for managed -> JNI lookups by @simonrozsival in #11100
- Exclude satellite assemblies from _PostTrimmingPipeline by @sbomer in #11086
- [TrimmableTypeMap] Scanner and JCW edge-case fixes by @simonrozsival in #11096
- [TrimmableTypeMap] Runtime-only trimmable typemap support by @simonrozsival in #11090
- [TrimmableTypeMap] Root AndroidManifest-referenced types by @simonrozsival in #11037
- Remove duplicate @ prefix from issueAuthor in GitOps by @akoeplinger in #11082
- Fix API 37 platform directory name: android-37 to android-37.0 by @jonathanpeppers in #11072
- [TrimmableTypeMap] Add GetStaticMethodFallbackTypesCore override for desugared default interface methods by @Copilot in #11050
- Move FixLegacyResourceDesignerStep to post-trim pipeline by @sbomer in #11059
- [TrimmableTypeMap] Propagate deferred registerNatives to base classes by @simonrozsival in #11105
- Remove broken 'Windows > Tests > Debugging' CI lane by @jonathanpeppers in #11109
- Use Assert.Inconclusive for emulator acquisition failures by @jonathanpeppers in #11110
- [dotnet test] Add
androidtestproject template anddotnet runinstrumentation support by @jonathanpeppers in #10862 - Remove unused HashSet allocations in HashJavaNames by @jonathanpeppers in #11124
- Document AndroidInstrumentation and EnableMSTestRunner build properties by @Copilot in #11129
- Remove experimental
AndroidGenerateJniMarshalMethodsfeature by @jonathanpeppers in #11128 - [Mono.Android] fix global ref leak in TypeManager.Activate by @jonathanpeppers in #11112
- Avoid O(n²) array growth in GenerateTypeMappings by @jonathanpeppers in #11127
- [TrimmableTypeMap] Fix IL1034 by excluding app assembly from trimmer roots by @simonrozsival in #11144
- Port TypeMapObjectsXmlFile.Import to XmlReader streaming by @jonathanpeppers in #11126
- Compute Java name hashes on demand instead of pre-computing both by @jonathanpeppers in #11132
- Add investigation & debugging practices to copilot-instructions by @simonrozsival in #11141
- [copilot] Add /review agentic workflow and update android-reviewer skill by @jonathanpeppers in #11149
- [copilot] Use Claude Opus 4.6 for android-reviewer workflow by @jonathanpeppers in #11150
- Set
min-integrity: noneon /review workflow by @jonathanpeppers in #11152 - Use stackalloc in TypeMapHelper to reduce allocations by @jonathanpeppers in #11133
- [ci] Only run dnceng-public pipeline for fork PRs by @jonathanpeppers in #11153
- Guard Mono-specific AOT targets for CoreCLR runtime, add XA1042 warning by @Copilot in #11070
- Run FixLegacyResourceDesigner before trimming by @sbomer in #11084
- [TrimmableTypeMap] Manifest generator fixes by @simonrozsival in #11143
- [TrimmableTypeMap] Package CoreCLR preserve list in SDK pack by @simonrozsival in #11142
- [TrimmableTypeMap] Runtime and typemap generator fixes by @simonrozsival in #11145
- Add network allowlist to android-reviewer workflow by @jonathanpeppers in #11164
- Bump com.android.tools.build:manifest-merger from 32.1.0 to 32.1.1 in /src/manifestmerger by @dependabot[bot] in #11159
- [tests] Improve NUnit runner reporting and dry-run auditing by @simonrozsival in #11162
- [TrimmableTypeMap] Fix UCO boolean return type mismatch causing n_* callback trimming by @simonrozsival in #11168
- [TrimmableTypeMap] Implement alias support in codegen and runtime by @simonrozsival in #11122
- Add roles restriction to
/reviewslash command by @jonathanpeppers in #11173 - Make CoreCLR the default runtime for Debug builds by @simonrozsival in #11169
- [Mono.Android] reduce GC bridge and reference logging overhead by @simonrozsival in #11119
- [TrimmableTypeMap] Add exception handling to UCO constructor callbacks (nctor_*_uco) by @Copilot in #11178
- [TrimmableTypeMap] Per-assembly typemap universes with startup hook initialization by @simonrozsival in #11181
- [Xamarin.Android.Build.Tasks] Retry RemoveDirFixed on ERROR_DIR_NOT_EMPTY by @SuperJMN in #11195
- [tests] Skip InflateCustomView_ShouldNotLeakGlobalRefs until global ref leak is fully resolved by @simonrozsival in #11202
- [TrimmableTypeMap] Replace startup hook with direct TypeMapLoader.Initialize() call by @simonrozsival in #11197
- [Build] Add Inputs/Outputs to _AddTypeManagerResources to skip on incremental builds by @jonathanpeppers in #11185
- Refactor network test helpers and fix async Assert.Ignore in NUnitLite by @Copilot in #11166
- [dotnet test] Add MTP test adapter for Android device testing by @jonathanpeppers in #11130
- [xabt] Fix redundant ternary in GenerateResourceDesignerAssembly by @jonathanpeppers in #11214
- Add XA0119 warning for Debug builds with PublishReadyToRun by @Copilot in #11213
- Fix broken and stale links in Documentation/README.md by @jonathanpeppers in #11211
- [tests] Use MSTestPackageVersion in DotNetNewAndroidTest by @jonathanpeppers in #11209
- [Build] Fix apidocs pipeline (template repo, DocsApiLevel, JAVA_HOME) by @jonathanpeppers in #11199
- Fix wrong-TFM assembly loading producing empty JCW .jlo.xml files by @jonathanpeppers in #11208
New Contributors
Full Changelog: 36.99.0-preview.3.10...36.99.0-preview.4.137