我有一个使用 AndroidX Xamarin 之前的版本、Java V8 (C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot) 在 Android 8.1 设备上运行的应用程序
我现在需要它在 Android 版本 8.1 至 12 的设备上运行,因此我升级了所有 NuGet 包,将目标框架设置为 12,根据需要将 Java 版本更新为 17。 (C:\Program Files\Microsoft\jdk-17.0.4.101-hotspot)
Visual Studio 2019 Xamarin Forms 5.0.0.2515(最新) 所有最新必需的 AndroidX 软件包。 目标框架 Android 12 最低 Android 版本 8.1 目标 Android 版本 12
一切看起来都很好,但 OnBackButtonPressed 事件不再在 Android 8.1 设备上触发。 它是在升级所有其他组件之前完成的,我自己没有更改任何代码。
OnBackButtonPressed 事件确实会在同一应用内的 Android 9 和 Android 10 设备上触发(所有三台设备上都安装了相同的 .apk)。
有谁知道为什么会这样或者我更新的哪一点可能破坏了它?
这不会触发 ->>>
protected override bool OnBackButtonPressed()
{
base.OnBackButtonPressed();
myViewModel.DoCancel();
return true;
}
我在运行 8.1 或更早版本的任何设备上都遇到了同样的问题。我从这个github问题论坛找到了解决方案。他们建议的解决方法是添加此标志。我不确定这是否会产生其他问题,但它修复了我的项目。我添加了 if 语句以仅将标志应用于影响 sdk 版本。
if (Build.VERSION.SdkInt <= BuildVersionCodes.OMr1) {
Forms.SetFlags("Disable_Accessibility_Experimental");
}