当在应用程序中快速单击导航按钮时,应用程序会崩溃,因为 Xamarin 会混淆要添加哪个页面并尝试推送或弹出到不存在的页面。通过识别 Xamarin 何时不知道将哪个页面添加到堆栈,并通过清除导航堆栈强制重置并从初始页面重新开始,已修复此错误。触发此重置后,然后尝试按导航按钮,程序有时会崩溃并收到“页面不得已有父级”错误。这种崩溃是不一致的,有时会在第一次重置后发生,有时需要 4 或 5 次重置才会发生,这使得调试变得困难。在重置发生之前它永远不会发生。
到目前为止已经尝试过:
已经没有想法了,已经这样做了 3 天,最让我困惑的是这不一致。
问题实际上是由重置方法引起的。页面根据配置文件存储在高速缓存中。重置应用程序时,这些页面不会被清除,这意味着当应用程序重置并返回主页时,它最终会导航到存储在缓存内存中的页面(如果该页面是导致第一次重置的页面)然后它会加载损坏的页面并使应用程序崩溃。重置应用程序时重置缓存已解决此问题。