Skip to content

Known issues in .NET

Jonathan Peppers edited this page Sep 19, 2022 · 22 revisions

Building net6.0-android apps from .NET 7 in Release mode

.NET 7 RC 1 does not yet support this scenario for Release builds. However, most Debug and development scenarios should work for net6.0-android apps.

Currently a few fixes will be needed in the next release to fully enable this scenario:

Until then, you have a couple options:

  • Change net6.0- everywhere to net7.0-. OR...
  • Use a global.json and pin to the stable .NET 6 SDK & Android workload:
{
  "sdk": {
    "version": "6.0.400",
    "rollForward": "latestMinor"
  }
}

Once you have a global.json in the current directory, you may need to run dotnet workload install android if the stable .NET 6 SDK does not have the required workload.

Specifying both -f and -r to dotnet build fails to restore for multi-targeted projects

This will manifest as a build error like this:

error : The RuntimeIdentifier 'android-arm64' is invalid.

The cause is that by passing -r <runtime identifier> to 'dotnet build' that runtime identifier is used for all target frameworks in the project file when the project is restored, while it's only a valid runtime identifier for one of the target frameworks.

Potential workaround is to restore manually, and build without restoring:

$ dotnet restore
$ dotnet build --no-restore -f net6.0-android -r android-arm64

This happens with dotnet publish as well.

This will be fixed in a future version of NuGet.

Ref: https://github.com/dotnet/sdk/issues/21877.
Ref: https://github.com/NuGet/Home/issues/11653.

dotnet pack and .aar files

In some cases .aar files are not packaged correctly for .nupkg output of Android class libraries.

For example:

  1. dotnet new androidlib
  2. Add MyAndroidLibrary.aar file
  3. dotnet pack
  4. lib\net6.0-android31.0\MyAndroidLibrary.aar is missing from the .nupkg

To workaround this issue, add the following to your .csproj file:

<ItemGroup>
  <AndroidLibrary Update="**\*.aar" Pack="false" />
  <None Update="**\*.aar" Pack="true" PackagePath="lib\$(TargetFramework)$(TargetPlatformVersion)" />
</ItemGroup>

Ref: https://github.com/xamarin/xamarin-android/issues/7040.
Ref: https://github.com/xamarin/xamarin-android/pull/7045.

Clone this wiki locally