Skip to content

Commit

Permalink
Added a fallback for arm cpus
Browse files Browse the repository at this point in the history
  • Loading branch information
pictos committed Sep 30, 2022
1 parent 0eb5ad7 commit 0a4f8c2
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions UnoCheck/Checkups/AndroidEmulatorCheckup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
using Xamarin.Installer.AndroidSDK;
using Xamarin.Installer.AndroidSDK.Manager;
using System.IO;
using Xamarin.Installer.AndroidSDK.Common;
using System.Runtime.InteropServices;

namespace DotNetCheck.Checkups
{
Expand All @@ -34,8 +36,8 @@ public override bool ShouldExamine(SharedState history)

public override Task<DiagnosticResult> Examine(SharedState history)
{
if(history.GetEnvironmentVariable("ANDROID_EMULATOR_SKIP") == "true")
{
if (history.GetEnvironmentVariable("ANDROID_EMULATOR_SKIP") == "true")
{
return Task.FromResult(
new DiagnosticResult(Status.Warning, this, $"Installation skipped for https://github.com/unoplatform/uno.check/issues/48"));
}
Expand Down Expand Up @@ -114,8 +116,15 @@ public override Task<DiagnosticResult> Examine(SharedState history)

var installedPackages = sdkInstance.Components.AllInstalled(true);

var sdkPackage = installedPackages.FirstOrDefault(p => p.Path.Equals(me.SdkId, StringComparison.OrdinalIgnoreCase));

var sdkPackage = installedPackages.FirstOrDefault(p =>
{
// This will be false if the proccess runs on Rosetta emulation
// and will install the wrong emulator (x86_64)
// https://github.com/dotnet/runtime/issues/42130
return Util.IsArm64
? p.Path.Contains("arm", StringComparison.OrdinalIgnoreCase)
: p.Path.Equals(me.SdkId, StringComparison.OrdinalIgnoreCase);
});
if (sdkPackage == null && (me.AlternateSdkIds?.Any() ?? false))
sdkPackage = installedPackages.FirstOrDefault(p => me.AlternateSdkIds.Any(a => a.Equals(p.Path, StringComparison.OrdinalIgnoreCase)));

Expand Down

0 comments on commit 0a4f8c2

Please sign in to comment.