2013-12-19 124 views
3

下面提到了一个随机错误,它在设置SystemTray可见性时说错了什么。我在xaml中将SystemTray可见性设置为false。它有时会随机崩溃应用程序,而不总是。抛出的异常是System.ArgumentExceptionValue does not fall within the expected range.SetSysTrayVisible bug Windows Phone 8

堆栈跟踪是如下

Microsoft.Phone.Shell.Interop.NativeSystemTrayMethods.SetSysTrayVisible(IntPtr pSysTray, Boolean fVisible)  
Microsoft.Phone.Shell.Interop.NativeSystemTrayInteropWrapper.SetSystemTrayVisible(Boolean isVisible) 
Microsoft.Phone.Controls.PhoneApplicationPage.set_SystemTrayIsVisible(Boolean value) 
Microsoft.Phone.Controls.PhoneApplicationPage..ctor() 

有什么可以为它的可能的原因?任何解决方法?任何线索都表示赞赏。

+0

检查任何其他页面或创建一个新页面,无论问题是否发生。 – asitis

+0

不,它是随机的。检查这个http://social.msdn.microsoft。com/Forums/wpapps/zh-CN/62ffbd7f-d7fa-4b68-ba65-cd4e851f0b6c/is-this-stack-trace-a-bug-in-wp8-systemtrayisvisibletrue?forum = wpdevelop –

+0

找不到页面。 – asitis

回答

0

这不是任何方式的解决方案。

我们在WP8.0设备上看到大多数情况下(90%)出现相同的错误,并且WP8.1设备的比例非常小。由于某些原因,其他错误报告不包含操作系统版本。

以下是我们通过Microsoft提供的高级技术支持发现的结果。

这是一个已知的问题,已修复为WP8.1

我看着堆栈跟踪建议并确认的SetSystemTrayVisible错误应该在WP8.1中修复。

我不知道为什么你会看到在8.10.14234某些情况下,但也有可能是第二,罕见的,问题在这方面

不幸的是,没有什么可以做在你的在WP8.0上防止这种情况的代码。问题出现在设置系统托盘默认状态的根页面初始化中。在本地互操作中有一个不正确的警戒检查,所以如果一个句柄被初始化为一个错误的值,那么就会引发异常。警卫被固定为WP8.1

您应该能够检测到错误...期望它触发Application_UnhandledException处理程序,您可以从中显示消息框。

因此,处理该异常的最好方法就是抓住它(检测),然后建议用户将操作系统升级到WP8.1。 我不确定这是多么可行,因为我们无法在我们的设备或模拟器上重现此错误。

希望这会有所帮助!

0

确保您已将所有.dll文件加载到Visual Studio! 也确保你写的字符串一路的page.xaml.cs

using Microsoft.Phone.Shell; 

我已经做到了顶,它就像一个魅力对我来说!

//Fullscreen mode. 
SystemTray.IsVisible = false; 

商祺! // Bachir Bouchemla