Skip to content

Releases: dotnet/android

.NET 11 Preview 3, Android 36.99.0-preview.3.10

15 Apr 14:59

Choose a tag to compare

This release is not yet available from the Visual Studio installer. Download the .NET 11 Preview 3 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.3.10/11.0.100-preview.3    SDK 11.0.100-preview.3

Android 17 / API 37 Preview Support

We’re grateful to the Uno Platform team for their deep collaboration with the .NET MAUI team in preparation for .NET 11 Preview 3. Their contributions helped ensure .NET for Android is aligned with Google’s latest platform updates, enabling developers to take advantage of Android 17 previews and API 37 right away. This kind of partnership strengthens the .NET ecosystem and reflects our shared commitment to delivering high-quality, cross-platform developer experiences.

To opt into API-37, you can change your .csproj to:

<PropertyGroup>
  <TargetFramework>net11.0-android37</TargetFramework>
  <EnablePreviewFeatures>true</EnablePreviewFeatures>
</PropertyGroup>

To install API-37 in Visual Studio's SDK manager, you can use Tools > Android > Android SDK Manager > Repository > Full List:

API-37

Note

By default the SDK manager will install to C:\Program Files (x86)\Android\android-sdk\platforms\android-37.0, which will not be automatically located by .NET for Android. Temporarily renamed the folder to C:\Program Files (x86)\Android\android-sdk\platforms\android-37, while we address this in a future release.

See our API-37 HPKE Encryption Sample for a full example on calling new APIs available in Android 17.

What's Changed

  • $(AndroidPackVersionSuffix)=preview.3; main is .NET 11 preview 3 by @jonathanpeppers in #10840
  • Remove UseLatestAndroidPlatformSdk by @Copilot in #10839
  • [TrimmableTypeMap] Scanner unit tests by @simonrozsival in #10813
  • Replace [DllImport] with [LibraryImport] for runtime P/Invokes by @Copilot in #10763
  • Fix XA3006: Sanitize whitespace-only parameter names in marshal methods LLVM IR generation by @Copilot in #10835
  • Fix net.android.init.gradle.kts for Gradle 9.x compatibility by @Copilot in #10738
  • Fix _TouchAndroidLinkFlag skipping on NativeAOT incremental builds by @sbomer in #10849
  • Fix emulator readiness check for package manager service by @Copilot in #10846
  • Support for exempting native libraries from JNI preload by @grendello in #10787
  • Default .NET 11 to target net11.0-android36.1 only by @jonathanpeppers in #10829
  • [Mono.Android] Bind API-CinnamonBun Beta 1 by @jonpryor in #10824
  • [dotnet run] ComputeAvailableDevices lists available emulators and auto-boot on deploy by @jonathanpeppers in #10826
  • [skills] create read-assembly-store skill by @jonathanpeppers in #10867
  • [Mono.Android] Bind API-CinnamonBun Beta 2 by @jonpryor in #10866
  • Fix AndroidDeviceUserId not passed to am start on debug/run by @Copilot in #10861
  • [build] Ignore MAUI public API analyzer errors (RS0016) in MAUI integration lane by @jonathanpeppers in #10884
  • [skills] Add AZDO build investigator skill by @jonathanpeppers in #10885
  • Fix typos and documentation wording from PR #10879 review by @Copilot in #10881
  • [build-tools] Fix CI download failures, upgrade xa-prep-tasks and BootstrapTasks to net10.0 by @jonathanpeppers in #10886
  • uses-feature.version should be settable according to android documentation by @Happypig375 in #10890
  • Add TaskFactory="TaskHostFactory" Runtime="NET" to xa-prep-tasks and BootstrapTasks UsingTask elements by @Copilot in #10893
  • Use JDK 21 instead of 11 by @Happypig375 in #10897
  • Bump to google/bundletool/1.18.3 by @jonathanpeppers in #10892
  • [tests] Clear ResolvedCodeAnalysisRuleSet to fix CoreCompile incrementality on CI by @jonathanpeppers in #10900
  • [docs] Sync Documentation/docs-mobile with dotnet/docs-mobile by @jonathanpeppers in #10907
  • [TrimmableTypeMap] Integration parity tests by @simonrozsival in #10827
  • [TrimmableTypeMap] Add TypeMap proxy groundwork with CreateInstance by @simonrozsival in #10808
  • Use shared AdbRunner from android-tools for device listing by @rmarinho in #10916
  • [skills] Add android-reviewer skill for PR code reviews by @jonathanpeppers in #10918
  • Add *.gdn.sarif to .gitignore by @Copilot in #10926
  • [TrimmableTypeMap] Add UCO wrappers, JCW generator, and JNI signature helpers by @simonrozsival in #10917
  • android-reviewer: @copilot prefix for Copilot-authored PRs by @simonrozsival in #10930
  • Ignore submodules in fail-on-dirty-tree CI check by @Copilot in #10927
  • Fix GC live lock issue in rapid UI switching by @Copilot in #10856
  • Remove checked-in test.keystore and generate it dynamically during tests by @Copilot in #10923
  • [xabt] Validate CustomJniInitFunctions names are valid C identifiers by @jonathanpeppers in #10935
  • Fix flaky HttpListener tests by using dynamic port allocation by @Copilot in #10939
  • Skip incremental build timing assertions for NativeAOT by @Copilot in #10937
  • [xabt] Filter non-Android .so files from _ResolvedNativeLibraries by @jonathanpeppers in #10936
  • Add HasMetadata checks to all PEReader code paths to handle native Windows DLLs by @Copilot in #10938
  • Move StripEmbeddedLibraries to MSBuild task by @sbomer in #10894
  • [build] Scope BinSkim scanning to build output only by @jonathanpeppers in #10940
  • [tests] Treat IOException as transient network error in DownloadedCache by @jonathanpeppers in #10951
  • [TrimmableTypeMap] Normalize dots to slashes in [Register] attribute JNI names by @simonrozsival in #10947
  • [tests] run Java.Interop-Tests on NativeAOT by @jonathanpeppers in #10496
  • Bump com.android.tools.build:manifest-merger from 31.12.2 to 31.13.0 in /src/manifestmerger by @dependabot[bot] in #10466
  • [TrimmableTypeMap] Detect overrides and constructors in JavaPeerScanner by @simonrozsival in #10932
  • [build] Fix BinSkim analyzeTargetGlob pattern by @jonathanpeppers in #10953
  • Bump com.android.tools.build:manifest-merger from 31.13.0 to 32.1.0 in /src/manifestmerger by @dependabot[bot] in #10955
  • [TrimmableTypeMap] Skip registerNatives for Application/Instrumentation types by @simonrozsival in #10957
  • Update documentation to reflect .aab fast deployment support by @Copilot in #10963
  • Ignore transient IO errors in on-device HTTP client handler tests by @Copilot in #10962
  • [build] Fix BinSkim failure in 'Convert NuGet to MSI' job by @jonathanpeppers in #10961
  • [build] Revert BinSkim analyzeTargetGlob customization by @jonathanpeppers in #10964
  • [TrimmableTypeMap] Add GenerateTrimmableTypeMap MSBuild task and targets by @simonrozsival in #10924
  • Backport dotnet-watch changes to main/.NET 11 by @jonathanpeppers in #10960
  • [Mono.Android] Fix UnhandledExceptionRaiser not firing in .NET 10 by @jonathanpeppers in #10966
  • [xaprepare] Retry runtime pack restore up to 3 times by @jonathanpeppers in #10970
  • Bump Android emulator from 32.1.9 to 36.4.10 by @rmarinho in #10971
  • Bump $(AndroidPackVersion) to 36.99.0 by @jonathanpeppers in #10976
  • Update copilot-instructions.md with learnings from recent PRs by @rmarinho in https://github.com/dotnet/andr...
Read more

.NET 10 Servicing, Android 36.1.53

15 Apr 13:27

Choose a tag to compare

The latest .NET MAUI component is available in Visual Studio 2026 or higher:

image

You can also download the .NET 10 SDK directly, followed by:

> dotnet workload install android --version 10.0.202
...
Successfully installed workload(s) android.

To verify installation:

> dotnet workload list

Installed Workload Id      Manifest Version                            Installation Source
--------------------------------------------------------------------------------------------
android                    36.1.53/10.0.100                            SDK 10.0.100

What's Changed

Full Changelog: 36.1.43...36.1.53

.NET 11 Preview 2, Android 36.1.99-preview.2.154

10 Mar 22:50

Choose a tag to compare

This release is not yet available from the Visual Studio installer. Download the .NET 11 Preview 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                    36.1.99-preview.2.154/11.0.100-preview.2    SDK 11.0.100-preview.2

What's Changed

  • $(AndroidPackVersionSuffix)=preview.2; main is .NET 11 preview 2 by @jonathanpeppers in #10725
  • [tests] restore testing net10.0-android projects in .NET 11 by @jonathanpeppers in #10729
  • [tests] verify 36.1 doesn't fallback to 36 by @jonathanpeppers in #10731
  • [xabt] fix $(AdbTarget) passed in by @jonathanpeppers in #10740
  • [xabt] use a response file when calling java r8.jar by @Copilot in #10716
  • Add UseMonoRuntime condition to API levels 21, 22, 23 in SupportedPlatforms generator by @Copilot in #10753
  • [Mono.Android] fix $DOTNET_STARTUP_HOOKS on CoreCLR by @jonathanpeppers in #10755
  • [tests] remove "flaky" MSBuild perf tests by @jonathanpeppers in #10756
  • Fix MSB4096 error with user-defined TrimmerRootAssembly items lacking RootMode metadata by @Copilot in #10759
  • [xaprepare] add --dotnet-sdk-archive switch by @jonathanpeppers in #10769
  • Unify LangVersion to "latest" across projects by @Copilot in #10766
  • [marshal methods] Make AndroidEnvironmentInternal.UnhandledException public by @Copilot in #10775
  • Bump com.android.tools:r8 from 8.13.19 to 9.0.32 in /src/r8 by @dependabot[bot] in #10780
  • [native build] Use a single source of truth for NDK API levels by @grendello in #10754
  • [TrimmableTypeMap] Extract typemap targets into dedicated files by @simonrozsival in #10797
  • Fix NativeAOT to use AndroidLinkMode=Full instead of SdkOnly by @Copilot in #10809
  • Migrate GenerateProguardConfiguration from ILLink step to MSBuild task by @sbomer in #10694
  • [NativeAOT] Fix application linking with API level > 21 by @grendello in #10812
  • [TrimmableTypeMap] Java peer scanner core by @simonrozsival in #10823
  • [build] Use all available CPU cores for NUnit test parallelism by @jonathanpeppers in #10834
  • [build] Add MSBuild + Emulator test stage to dnceng-public pipeline by @jonathanpeppers in #10828

Full Changelog: 36.1.99-preview.1.120...36.1.99-preview.2.154

.NET 10 Servicing, Android 36.1.43

10 Mar 22:50
350a375

Choose a tag to compare

The latest .NET MAUI component is available in Visual Studio 2026 or higher:

image

You can also download the .NET 10 SDK directly, followed by:

> dotnet workload install android --version 10.0.104
...
Successfully installed workload(s) android.

To verify installation:

> dotnet workload list

Installed Workload Id      Manifest Version                            Installation Source
--------------------------------------------------------------------------------------------
android                    36.1.43/10.0.100                            SDK 10.0.100

What's Changed

Full Changelog: 36.1.30...36.1.43

.NET 11 Preview 1, Android 36.1.99-preview.1.120

11 Feb 14:31
ee7ba43

Choose a tag to compare

This release is not yet available from the Visual Studio installer. Download the .NET 11 Preview 1 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.1.99-preview.1.120/11.0.100-preview.1    SDK 11.0.100-preview.1

What's Changed

New Contributors

Full Changelog: 36.1.2...36.1.99-preview.1.120

.NET 10 Servicing, Android 36.1.30

10 Feb 22:48

Choose a tag to compare

The latest .NET MAUI component is available in Visual Studio 2026 or higher:

image

You can also download the .NET 10 SDK directly, followed by:

> dotnet workload install android --version 10.0.103
...
Successfully installed workload(s) android.

To verify installation:

> dotnet workload list

Installed Workload Id      Manifest Version                            Installation Source
--------------------------------------------------------------------------------------------
android                    36.1.30/10.0.100                            SDK 10.0.100

What's Changed

Full Changelog: 36.1.12...36.1.30

.NET 10 Servicing, Android 36.1.12

14 Jan 01:33
d611c12

Choose a tag to compare

The latest .NET MAUI component is available in Visual Studio 2026 or higher:

image

You can also download the .NET 10 SDK directly, followed by:

> dotnet workload install android --version 10.0.102
...
Successfully installed workload(s) android.

To verify installation:

> dotnet workload list

Installed Workload Id      Manifest Version                            Installation Source
--------------------------------------------------------------------------------------------
android                    36.1.12/10.0.100                             SDK 10.0.100

What's Changed

Full Changelog: 36.1.2...36.1.12

.NET 10 GA, Android 36.1.2

11 Nov 19:04

Choose a tag to compare

The latest .NET MAUI component is available in Visual Studio 2026 or higher:

image

You can also download the .NET 10 SDK directly, followed by:

> dotnet workload install android --version 10.0.100.1
...
Successfully installed workload(s) android.

To verify installation:

> dotnet workload list

Installed Workload Id      Manifest Version                            Installation Source
--------------------------------------------------------------------------------------------
android                    36.1.2/10.0.100                             SDK 10.0.100

Android 36.1

To try out the new APIs, you can opt your project into the new net10.0-android36.1 target framework:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net10.0-android36.1</TargetFramework>
    <!-- Remainder of your .csproj -->

Note that if omitted, net10.0-android will default to API 36.0.

To use an Android 36.1-only API you can use the OperatingSystem class to check the Android version at runtime:

if (OperatingSystem.IsAndroidVersionAtLeast(36, 1))
{
    // Call some Android 36.1 API here
}
else
{
	// Fallback for older OS versions
	ShowToast("Android 36.1+ is required for this feature");
}

See the Android documentation for a full diff of the new available APIs in Android 36.1.

For a full sample using Android 36.1 APIs, see our Pdf Annotator sample on GitHub.

To install the Android 36.1 platform, you can go to Tools > Android > Android SDK Manager. Install Android SDK Platform 36.1.

TLDR

For a short list of Android features in .NET 10, see:

What's Changed

Full Changelog: 36.0.0-rc.2.332...36.1.2

.NET 10 RC 2, Android 36.0.0-rc.2.332

14 Oct 20:45
971bf7e

Choose a tag to compare

Pre-release

The latest .NET MAUI component is available in Visual Studio 2026 Insiders 11111.16 and higher:

image

You can also download the .NET 10 RC 2 SDK directly, 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.0.0-rc.2.332/10.0.100-rc.2               SDK 10.0.100-rc.2

Android 36.1

To try out the new APIs, you can opt your project into the new net10.0-android36.1 target framework:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net10.0-android36.1</TargetFramework>
    <EnablePreviewFeatures>true</EnablePreviewFeatures>
    <!-- Remainder of your .csproj -->

Note that if omitted, net10.0-android will default to API 36.0. $(EnablePreviewFeatures) will not be required in future .NET 10 releases.

To use an Android 36.1-only API you can use the OperatingSystem class to check the Android version at runtime:

if (OperatingSystem.IsAndroidVersionAtLeast(36, 1))
{
    // Call some Android 36.1 API here
}
else
{
	// Fallback for older OS versions
	ShowToast("Android 36.1+ is required for this feature");
}

See the Android documentation for a full diff of the new available APIs in Android 36.1.

For a full sample using Android 36.1 APIs, see our Pdf Annotator sample on GitHub.

To install the Android 36.1 platform, you can go to Tools > Android > Android SDK Manager. Under the gear icon in the bottom right, change Repository to Full List. This allows you to install Android SDK Platform 36.1.

TLDR

For a short list of Android features in .NET 10, see:

What's Changed

New Contributors

Full Changelog: 36.0.0-rc.1.285...36.0.0-rc.2.332

.NET 9 Servicing, Android 35.0.105

14 Oct 18:39

Choose a tag to compare

The latest .NET MAUI component is available in Visual Studio 2026 Insiders 11111.16 and higher:

image

You can also download the .NET 9 SDK directly, 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                    35.0.105/9.0.100                  SDK 9.0.305

What's Changed

Full Changelog: 35.0.101...35.0.105