此问题可能是由于项目没有正确配置所导致的。使用以下步骤解决此问题:
步骤1:打开项目并导航到解决方案管理器。 步骤2:在解决方案管理器中,右键单击您的应用程序项目并选择“属性”。 步骤3:在“属性”窗口中,选择“生成”选项卡。 步骤4:在“生成”选项卡中,检查“CPU体系结构”字段是否设置为“ARM64”。 步骤5:如果未设置,请将其更改为“ARM64”。 步骤6:重新编译并启动您的应用程序,这应该解决问题。
以下是一个示例,展示如何从当前设备的CPU体系结构中检测并指定arm64-v8a作为目标:
using System;
using System.Diagnostics;
using Xamarin.Essentials;
namespace YourNamespace
{
public static class DeviceInfoHelper
{
public static bool IsArm64
{
get
{
var proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "uname",
Arguments = "-a",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
proc.Start();
var output = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
return output.Contains("aarch64");
}
}
public static string GetTargetArchitectures()
{
var targetArchitectures = "armeabi-v7a";
if (DeviceInfoHelper.IsArm64)
{
targetArchitectures += ";arm64-v8a";
}
return targetArchitectures;
}
}
}
此代码段包含一个获取当前设备是否为arm64-v8a的静态属性和一个方法,用于获取目标体系结构(多个体系结构以分号分隔),可用于在VS中的“项目属性”-> “Android生成” ->“高级”->“目标体系结构”中处理。