Tags · dotnet/android · GitHub
Skip to content

Tags: dotnet/android

Tags

Verified

This tag was signed with the committer’s verified signature.
jonathanpeppers Jonathan Peppers

Verified

This tag was signed with the committer’s verified signature.
jonathanpeppers Jonathan Peppers

36.99.0-preview.4.137

Toggle 36.99.0-preview.4.137's commit message
Localized file check-in by OneLocBuild Task (#11244)

Build definition ID 17928: Build ID 13967215

36.99.0-preview.3.10

Toggle 36.99.0-preview.3.10's commit message
[Mono.Android] Bind API-37 Beta 3 (#11038)

Context: https://developer.android.com/about/versions/17
Context: https://android-developers.googleblog.com/2026/03/the-third-beta-of-android-17.html

Android 17 Beta 3 has been released.

  * [API-37 Beta 3 vs. API-CinnamonBun Beta 2][0]
  * [API-37 Beta 3 vs. API-36.1][1]

The Android 17 Beta 3 announcement states that Beta 3 is API stable.

> Android 17 has officially reached platform stability today with
> Beta 3. That means that the API surface is locked; you can perform
> final compatibility testing and push your Android 17-targeted apps
> to the Play Store.

We're not yet ready to do the enumification work, though.

Bind API-37 Beta 3 as an *unstable*, *un-enumified* binding.

[0]: https://developer.android.com/sdk/api_diff/37-incr/changes
[1]: https://developer.android.com/sdk/api_diff/37/changes

36.1.53

Toggle 36.1.53's commit message
[xabt] `dotnet watch` support, based on env vars (#10960)

Context: dotnet/sdk#52492
Context: dotnet/sdk#52581

`dotnet-watch` now runs Android applications via:

    dotnet watch 🚀 [helloandroid (net10.0-android)] Launched 'D:\src\xamarin-android\bin\Debug\dotnet\dotnet.exe' with arguments 'run --no-build -e DOTNET_WATCH=1 -e DOTNET_WATCH_ITERATION=1 -e DOTNET_MODIFIABLE_ASSEMBLIES=debug -e DOTNET_WATCH_HOTRELOAD_WEBSOCKET_ENDPOINT=ws://localhost:9000 -e DOTNET_STARTUP_HOOKS=D:\src\xamarin-android\bin\Debug\dotnet\sdk\10.0.300-dev\DotnetTools\dotnet-watch\10.0.300-dev\tools\net10.0\any\hotreload\net10.0\Microsoft.Extensions.DotNetDeltaApplier.dll -bl': process id 3356

And so the pieces on Android for this to work are:

~~ Startup Hook Assembly ~~

Parse out the value:

    <_AndroidHotReloadAgentAssemblyPath>@(RuntimeEnvironmentVariable->WithMetadataValue('Identity', 'DOTNET_STARTUP_HOOKS')->'%(Value)'->Exists())</_AndroidHotReloadAgentAssemblyPath>

And verify this assembly is included in the app:

    <ResolvedFileToPublish Include="$(_AndroidHotReloadAgentAssemblyPath)" />

Then, for Android, we need to patch up `$DOTNET_STARTUP_HOOKS` to be
just the assembly name, not the full path:

    <_AndroidHotReloadAgentAssemblyName>$([System.IO.Path]::GetFileNameWithoutExtension('$(_AndroidHotReloadAgentAssemblyPath)'))</_AndroidHotReloadAgentAssemblyName>
    ...
    <RuntimeEnvironmentVariable Include="DOTNET_STARTUP_HOOKS" Value="$(_AndroidHotReloadAgentAssemblyName)" />

~~ Port Forwarding ~~

A new `_AndroidConfigureAdbReverse` target runs after deploying apps,
that does:

    adb reverse tcp:9000 tcp:9000

I parsed the value out of:

    <_AndroidWebSocketEndpoint>@(RuntimeEnvironmentVariable->WithMetadataValue('Identity', 'DOTNET_WATCH_HOTRELOAD_WEBSOCKET_ENDPOINT')->'%(Value)')</_AndroidWebSocketEndpoint>
    <_AndroidWebSocketPort>$([System.Text.RegularExpressions.Regex]::Match('$(_AndroidWebSocketEndpoint)', ':(\d+)').Groups[1].Value)</_AndroidWebSocketPort>

~~ Prevent Startup Hooks in Microsoft.Android.Run ~~

When I was implementing this, I keep seeing *two* clients connect to
`dotnet-watch` and I was pulling my hair to figure out why!

Then I realized that `Microsoft.Android.Run` was also getting
`$DOTNET_STARTUP_HOOKS`, and so we had a desktop process + mobile
process both trying to connect!

Easiest fix, is to disable startup hook support in
`Microsoft.Android.Run`. I reviewed the code in `dotnet run`, and it
doesn't seem correct to try to clear the env vars.

~~ Conclusion ~~

With these changes, everything is working!

    dotnet watch 🔥 C# and Razor changes applied in 23ms.

* Include $(AdbTarget) in adb reverse command

When multiple devices/emulators are connected, the adb reverse
command needs  (e.g. -s emulator-5554) to target
the correct device. Without it, the command fails with
'more than one device' or forwards on the wrong device.

NOTE: we run the test on MonoVM-only for now, until we get:
* dotnet/sdk#53501

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

36.1.99-preview.2.154

Toggle 36.1.99-preview.2.154's commit message
Support for exempting native libraries from JNI preload (#10787)

Fixes: #10617
Context: cba39dc

cba39dc introduced support for preloading of JNI native libraries at
application startup.  However, it appears that in some scenarios this
behavior isn't desired.

This PR introduces a mechanism which allows exempting some or all (with
exception of the BCL libraries) libraries from the preload mechanism.

In order to not preload any JNI libraries it's now possible to set the
`$(AndroidIgnoreAllJniPreload)` MSBuild property to `true`.

It is also possible to exempt individual libraries from preload by
adding their name to the `AndroidNativeLibraryNoJniPreload` MSBuild
item group, for instance:

    <ItemGroup>
      <AndroidNativeLibraryNoJniPreload Include="libMyLibrary.so" />
    </ItemGroup>

36.1.43

Toggle 36.1.43's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump to dotnet/dotnet@ee15891825 10.0.200-servicing.26120.103 (#10853)

Changes: dotnet/dotnet@e911301...ee15891

* Update dependencies from https://github.com/dotnet/dotnet build 20260220.3
On relative base path root
Microsoft.DotNet.Build.Tasks.Feed From Version 10.0.0-beta.26118.103 -> To Version 10.0.0-beta.26120.103
Microsoft.NET.Sdk From Version 10.0.200-preview.0.26118.103 -> To Version 10.0.200-servicing.26120.103
Microsoft.TemplateEngine.Authoring.Tasks From Version 10.0.200-preview.26118.103 -> To Version 10.0.200-preview.26120.103

* Update to use dotnet/runtime 9.0.14 feeds

Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>

36.1.99-preview.1.120

Toggle 36.1.99-preview.1.120's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump to dotnet/dotnet@5a1f1d222b 11.0.100-preview.1.26081.107 (#10750)

Changes: dotnet/dotnet@5a1f1d2...5a1f1d2

- **Dependency Updates**:
  - From [11.0.0-beta.26079.122 to 11.0.0-beta.26081.107][1]
     - Microsoft.DotNet.Build.Tasks.Feed
  - From [0.11.5-preview.26079.122 to 0.11.5-preview.26081.107][1]
     - Microsoft.DotNet.Cecil
  - From [11.0.0-preview.1.26079.122 to 11.0.0-preview.1.26081.107][1]
     - Microsoft.NET.ILLink
     - Microsoft.NETCore.App.Ref
  - From [11.0.100-preview.1.26079.122 to 11.0.100-preview.1.26081.107][1]
     - Microsoft.NET.Sdk
     - Microsoft.NET.Workload.Emscripten.Current.Manifest-11.0.100-preview.1
     - Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest-11.0.100-preview.1
     - Microsoft.TemplateEngine.Authoring.Tasks

[1]: dotnet/dotnet@5a1f1d2...5a1f1d2

36.1.30

Toggle 36.1.30's commit message
Bump to dotnet/android-tools@fb95edd (#10707)

Bumps [external/xamarin-android-tools](https://github.com/dotnet/android-tools) from `ca74eba` to `fb95edd`.
- [Commits](dotnet/android-tools@ca74eba...fb95edd)

---
updated-dependencies:
- dependency-name: external/xamarin-android-tools
  dependency-version: fb95edd359e6a6af9aecc4c82520f5a5f2ede824
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

36.1.12

Toggle 36.1.12's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Bump to dotnet/dotnet@a1b9d991e4 10.0.2-servicing.25612.103 (#10648)

Changes: dotnet/dotnet@ed2ddf8...a1b9d99

- **Dependency Updates**:
  - From [10.0.0-beta.25605.116 to 10.0.0-beta.25612.103][1]
     - Microsoft.DotNet.Build.Tasks.Feed
  - From [0.11.5-alpha.25605.116 to 0.11.5-alpha.25612.103][1]
     - Microsoft.DotNet.Cecil
  - From [10.0.2-servicing.25605.116 to 10.0.2-servicing.25612.103][1]
     - Microsoft.NET.ILLink
  - From [10.0.102-servicing.25605.116 to 10.0.102-servicing.25612.103][1]
     - Microsoft.NET.Sdk
  - From [10.0.102 to 10.0.102][1]
     - Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100
     - Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest-10.0.100
     - Microsoft.TemplateEngine.Authoring.Tasks
  - From [10.0.2 to 10.0.2][1]
     - Microsoft.NETCore.App.Ref

[1]: dotnet/dotnet@ed2ddf8...a1b9d99