Windows Phone 设备上的访问违规崩溃





5.00/5 (2投票s)
Windows Phone 设备上的访问违规崩溃
引言
我目前正在开发一个 Windows Phone 8.1 应用,我注意到在我的 Lumia 930 上测试时,应用会崩溃。奇怪的是,我没有收到任何异常,调试会话在我导航应用时停止。我尝试捕获未处理的异常,但这同样失败了。我开始查看调试输出,并注意到以下行
The program '[3452] MyApp.WindowsPhone.exe' has exited with code -1073741819
(0xc0000005) 'Access violation'.
我在 Google 上搜索了一下,发现其他人也在其他场景下遇到了同样的问题。例如,有些人是因为图像处理引起的,另一些人是因为 WebViews(包括我自己,但这不是我遇到的问题),或者自定义控件。为了方便你的 Google 搜索,我在这里列举一些我找到的修复方法。
1. 以管理员身份运行 Visual Studio
有些人构建项目时,甚至在应用运行时,都会遇到这个问题。似乎 Visual Studio 在调试时没有足够的权限访问内存的某些部分。对一些人来说,以管理员身份运行可以解决问题,但对我来说不行。
2. 移除 WebView
你可能不想听到这个消息,特别是如果你真的需要它,但 WebView 控件存在一个 bug,应该在 WP 8.1 Update 1 中修复。如果你需要显示网站,可以使用 Launcher,或者希望只有少数用户会遇到此崩溃。
3. 使用 Dispatcher 进行导航
这帮助我解决了这个问题。显然,由于 WP 8.1 中的另一个 bug,在导航时遇到此崩溃,你必须使用 Dispatcher。
以下是我在搜索过程中找到的一些有趣的帖子
- [通用应用] WebView 在滚动时崩溃 (windows phone 8.1)
- 通用 Windows Phone 8.1 应用在 WebView 中滚动过快时崩溃
- Windows phone 8.1 Update 1 在使用“点击事件”导航时出现访问违规
我花了将近一个小时搜索答案,希望这些修复方法能帮助到你!祝你编码愉快!