You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Welcome to .NET for Android 10! These release notes are intended to call out user-facing enhancements and changes as we build the next version of .NET for Android.
Note that this document is being built as we commit changes, so it will contain information about previews that may not have been released yet. Also note that the intention of previews is to try out changes and get feedback, so these changes could be removed before the final .NET 10 release.
Please file any feedback about these features as issues in this repository!
Google has released Beta 1 of the Android 16 (API-36) SDK. Support has been adding for using these preview APIs.
To target the Android 16 preview API:
Use the Android SDK Manager to download the Android 16 (Baklava) Platform
Update your project's TargetFramework to net10.0-android36
Update Recommended Minimum Supported Android API (#9656)
The .NET for Android project templates have been updated to specify 24 ("Nougat") as the default $(SupportedOSPlatformVersion) instead of 21 ("Lollipop"). This prevents users from hitting "desugaring" runtime crashes when using Java default interface methods.
While API-21 is still supported in .NET 10, it is recommended to update existing projects to API-24 to avoid unexpected runtime errors.
Previously we could not support dotnet run for .NET for Android projects because it did not accept parameters needed to specify which Android device or emulator to use.
Now that the .NET SDK team has added this support, .NET for Android projects can be run using dotnet run:
// Run on the only attached Android physical device
dotnet run -p:AdbTarget=-d
// Run on the only running Android emulator
dotnet run -p:AdbTarget=-e
// Run on the specified Android physical device or emulator
dotnet run -p:AdbTarget="-s emulator-5554"
The AdbTarget property is passed to adb. Its specification is documented here.
A new way of creating the marshal methods needed for Java calling into C# code promises to provide startup performance improvements. Unfortunately, we weren't able to get them stabilized in time for .NET 9 and thus .NET 9 shipped with them off by default.
For .NET 10 previews we have re-enabled them by default to continue testing and getting feedback. Problems with these marshal methods often manifest as a hang at startup. If you are getting a hang on startup on .NET 10 previews that you didn't see on .NET 9, try disabling marshal methods. If this fixes the hang, please file an issue letting us know there are still issues with marshal methods.
Add ArtifactFilename metadata for @(AndroidMavenLibrary) item (#9479)
@(AndroidMavenLibrary) was added in .NET 9 and allows a Java library to be automatically downloaded from Maven to be bound. Generally this library is named {artifact.Id}-{artifact.Version}.[jar|aar], however we later found out it does not follow a standard and could be arbitrarily different.
Add the ArtifactFilename metadata to @(AndroidMavenLibrary) to allow an alternative file name:
Visual Studio Design-Time Builds no longer invoke aapt2 (#9700)
In order to speed up Design-Time Builds, aapt2 is no longer invoked; instead, the .aar files and underlying Android resources are parsed directly . This reduces the time of a Design-Time Build for some of our unit tests from over 2s to under 600ms.
Help optimize app startup and overall performance by removing codepaths that may hit System.Reflection.Emit from "Java calling into C#" codepaths.
Fix InvalidCastException when using ApplicationAttribute.ManageSpaceActivity (#9708)
Trying to set the ApplicationAttribute.ManageSpaceActivity property would result in an XAGJS7007 error. This has been fixed.
.NET 10 Preview 2 - Unreleased
Use System.IO.Compression for .apk creation (#9623)
Historically, dotnet/android-libzipsharp was used to process ZIP archives and create .aab and .apk files.
For command-linedotnet build invocations, we now use System.IO.Compression.ZipArchive to create .aab and .apk files. This should result in faster build times.
Builds from within Visual Studio continue to use dotnet/android-libzipsharp, as the .NET Framework version of System.IO.Compression cannot be used.
The text was updated successfully, but these errors were encountered:
Welcome to .NET for Android 10! These release notes are intended to call out user-facing enhancements and changes as we build the next version of .NET for Android.
Note that this document is being built as we commit changes, so it will contain information about previews that may not have been released yet. Also note that the intention of previews is to try out changes and get feedback, so these changes could be removed before the final .NET 10 release.
Please file any feedback about these features as issues in this repository!
.NET 10 Preview 1 - Unreleased
Android 16 (Baklava) Beta 1 Bindings (#9707)
Google has released Beta 1 of the Android 16 (API-36) SDK. Support has been adding for using these preview APIs.
To target the Android 16 preview API:
TargetFramework
tonet10.0-android36
Update Recommended Minimum Supported Android API (#9656)
The .NET for Android project templates have been updated to specify
24
("Nougat") as the default$(SupportedOSPlatformVersion)
instead of21
("Lollipop"). This prevents users from hitting "desugaring" runtime crashes when using Java default interface methods.While API-21 is still supported in .NET 10, it is recommended to update existing projects to API-24 to avoid unexpected runtime errors.
Support for
dotnet run
(#9470)Previously we could not support
dotnet run
for .NET for Android projects because it did not accept parameters needed to specify which Android device or emulator to use.Now that the .NET SDK team has added this support, .NET for Android projects can be run using
dotnet run
:The
AdbTarget
property is passed toadb
. Its specification is documented here.Enable Marshal Methods by Default (#9551)
A new way of creating the marshal methods needed for Java calling into C# code promises to provide startup performance improvements. Unfortunately, we weren't able to get them stabilized in time for .NET 9 and thus .NET 9 shipped with them off by default.
For .NET 10 previews we have re-enabled them by default to continue testing and getting feedback. Problems with these marshal methods often manifest as a hang at startup. If you are getting a hang on startup on .NET 10 previews that you didn't see on .NET 9, try disabling marshal methods. If this fixes the hang, please file an issue letting us know there are still issues with marshal methods.
Add
ArtifactFilename
metadata for@(AndroidMavenLibrary)
item (#9479)@(AndroidMavenLibrary)
was added in .NET 9 and allows a Java library to be automatically downloaded from Maven to be bound. Generally this library is named{artifact.Id}-{artifact.Version}.[jar|aar]
, however we later found out it does not follow a standard and could be arbitrarily different.Add the
ArtifactFilename
metadata to@(AndroidMavenLibrary)
to allow an alternative file name:Visual Studio Design-Time Builds no longer invoke
aapt2
(#9700)In order to speed up Design-Time Builds,
aapt2
is no longer invoked; instead, the.aar
files and underlying Android resources are parsed directly . This reduces the time of a Design-Time Build for some of our unit tests from over 2s to under 600ms.Building with JDK-21 is now supported (#9672)
.NET for Android projects can now be built with JDK-21.
generator
output now avoids potential System.Reflection.Emit usage (dotnet/java-interop#1275)Help optimize app startup and overall performance by removing codepaths that may hit System.Reflection.Emit from "Java calling into C#" codepaths.
Fix
InvalidCastException
when usingApplicationAttribute.ManageSpaceActivity
(#9708)Trying to set the
ApplicationAttribute.ManageSpaceActivity
property would result in an XAGJS7007 error. This has been fixed..NET 10 Preview 2 - Unreleased
Use System.IO.Compression for
.apk
creation (#9623)Historically, dotnet/android-libzipsharp was used to process ZIP archives and create
.aab
and.apk
files.For command-line
dotnet build
invocations, we now useSystem.IO.Compression.ZipArchive
to create.aab
and.apk
files. This should result in faster build times.Builds from within Visual Studio continue to use dotnet/android-libzipsharp, as the .NET Framework version of System.IO.Compression cannot be used.
The text was updated successfully, but these errors were encountered: