.net MAUI 应用程序无法在本地 arm64-v8a 设备上启动

.net MAUI application fails to launch on local arm64-v8a device

我开发了 MAUI 应用程序。 Eveything 在模拟器上完美运行,我想在我的小米 Redmi note 9 上试用它。但它失败了:

Loaded assembly: /data/data/com.companyname.mauieventsamplecs/files/.__override__/System.Numerics.Vectors.dll [External]
[monodroid-assembly] open_from_bundles: failed to load assembly lt-LT/System.Private.CoreLib.resources.dll
[chatty] uid=10359(com.companyname.mauieventsamplecs) identical 2 lines
[monodroid-assembly] open_from_bundles: failed to load assembly lt-LT/System.Private.CoreLib.resources.dll
[uieventsamplec] Process terminated due to "Infinite recursion during resource lookup within System.Private.CoreLib.  This may be a bug in System.Private.CoreLib, or potentially in certain extensibility points such as assembly resolve events or CultureInfo names.  Resource name: IO_FileName_Name"
[libc] Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 1418 (uieventsamplecs), pid 1418 (uieventsamplecs)

我指出这是不同 CPU 的问题。默认情况下,应用程序构建在 Any CPU 上(模拟器运行 x86_64 系统)。我希望应该包括 arm64-v8a,但它似乎只包括所有英特尔 CPU。尝试启动 arm64-v8a 模拟器,但它不受支持,因为我的设备是 Intel 而不是 AMD

我尝试将解决方案平台更改为 ARM64,但是没有帮助,或者,您需要做的不仅仅是添加新的解决方案平台并分配它以使其实际工作。

所以我的问题是:如果可能的话,应该如何设置 MAUI 在本地启动arm64-v8a

尝试在MauiApp1.csproj

中设置
<PropertyGroup Condition="$(TargetFramework.Contains('-android')) and '$(Configuration)' == 'Release'">
    <!--<RuntimeIdentifiers>android-arm;android-arm64;android-x86;android-x64</RuntimeIdentifiers>-->
    <RuntimeIdentifiers>android-arm;android-arm64</RuntimeIdentifiers>
</PropertyGroup>

原来这是基于 lt-LT/System.Private.CoreLib.resources.dll 的问题,经过几天的调试,最终将我的 phone 语言从 LT 切换到 US [=15] =] 设置它解决了问题。