.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] =] 设置它解决了问题。
我开发了 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] =] 设置它解决了问题。