none
升级WP8.1 UPDATE1后,从ListView里面点击Navigate到其它页面,就会以非常大的概率闪退,而且没有异常报告 RRS feed

  • 问题

  • 升级WP8.1 UPDATE1后,从ListView里面点击Navigate到其它页面,就会以非常大的概率闪退,而且没有异常报告,试了各种方式,开始还以为是目标页面有问题,各种改,怎么都不见效,后来我干脆新建了一个全新的页面,不添加任何额外的代码和控件,居然还是闪退,于是知道不是目标页面的问题

    仅在软件自动退出后,在几秒后,VS会显示:程序“[2292] weibopro.WindowsPhone.exe”已退出,返回值为 -1073741819 (0xc0000005) 'Access violation'。

    或者偶尔会显示成0xc0000002

    以下是我监测中间变量时,看到的 中

    App.frame.Navigate(typeof(ImageView1), images))

    frame.SourcePageType = {weibopro.MainPage}ypeof(ImageView1) 都引发了差不多的异常,不过这个异常只是在内部,并没有引发,

    只是我通过看局部变量看到的:

    base = {System.InvalidOperationException: Method may only be called on a Type for which Type.IsGenericParameter is true.
       at System.RuntimeType.get_GenericParameterAttributes()}

    GenericParameterPosition = “(MainPage.frame.SourcePageType).GenericParameterPosition”引发了“System.InvalidOperationException”类型的异常

    base = {System.InvalidOperationException: Method may only be called on a Type for which Type.IsGenericParameter is true.
       at System.RuntimeType.get_GenericParameterPosition()}

    base = {System.InvalidOperationException: Method may only be called on a Type for which Type.IsGenericParameter is true.
       at System.RuntimeType.get_DeclaringMethod()}


    DeclaringMethod = “(typeof(ImageView)).DeclaringMethod”引发了“System.InvalidOperationException”类型的异常


    而且,经过单步执行,可以知道navigate方法算是已经执行完毕,还把目标页面的onnavigateto方法也执行完了,始终找不到是什么原因引起的,现在看来跟这个frame可能有关吧,可能这里面有Bug, 经过几天不间断的想方法解决,发现这个问题根本无法解决,但是好像同样有WP8.1 runtime开发的相似应用,是U1系统里面没有问题,所以不知道是在ListView加了什么导致了这个Bug,

    但由于重新到 WP8.1的模拟器里面 进行测试就没有任何问题,有理由相信,这是U1的 系统底层bug,希望能解决


    kingyzf

    2014年8月14日 15:07

答案

  • 真是戏剧,刚才不知道哪里来的灵感,在navigate方法前面加了一句 await Task.deley(200) ,于是这问题就这么解决了,这他妹的哪门子的错误

    kingyzf

    • 已标记为答案 kingyzf 2014年8月14日 16:19
    2014年8月14日 16:19

全部回复

  • 真是戏剧,刚才不知道哪里来的灵感,在navigate方法前面加了一句 await Task.deley(200) ,于是这问题就这么解决了,这他妹的哪门子的错误

    kingyzf

    • 已标记为答案 kingyzf 2014年8月14日 16:19
    2014年8月14日 16:19
  • 你会很搞笑的发现,这个bug会出现在WP8.1 GDR1 developer preview的系统上,正常本推送的用户不会有这个问题=。=
    2014年9月22日 2:57
  • 对了,实际上不一定需要延迟,只要你调用页面跳转的地方的方法是异步的就不会崩溃
    2014年9月22日 3:52