什么可能导致我的WP7应用程序仅在某些型号上崩溃?

时间:2011-02-28 15:36:15

标签: silverlight windows-phone-7

我一直在研究和解决这个问题大约一个月。我不希望任何人能够给我一个明确的答案。我现在完全没有想法,可以使用任何东西。

问题是我的应用程序仅在某些型号的手机上崩溃。我有一个HTC环绕,运行正常。它也已经在三星Focus上进行了测试,并且可以在那里工作。它在HTC莫扎特上非常稳定地崩溃。还有其他手机崩溃,但我不知道它们是什么型号。我无法访问HTC莫扎特,因此调试非常困难。

我正在处理应用程序UnhandledException事件,我尝试了解每个后台线程。错误处理代码永远不会运行。

我所知道的:
有时冻结并需要按下电源按钮。至少一次需要取出电池。大部分时间它会冻结然后崩溃 在所有内容显示之前,大部分时间它都会在主菜单上崩溃 它并非100%一致。有时候它会起作用,但绝不会很长 这不是因为内存不足。大多数时候它在使用少于8MB时崩溃 当所有异常处理都不起作用时,我添加了调试日志记录。这会减慢速度,但同时问题就会消失。

这些症状让我听起来像是一个僵局。虽然我已经完成了代码,并且没有任何线程一次输入超过1个锁。

关于如何追踪这一点的任何想法都将不胜感激。

修改:这是my game的WP7版本。我刚刚与志愿者一起确认HTC莫扎特,在网络上运行的代码最简单的转换将在手机上崩溃。那段代码没有网络,隔离存储或声音。

我也应该提到这已经通过认证并且在市场上待了几天,直到我把它取下来因为它得到了不好的评论(因为它对一些人来说无法播放)

4 个答案:

答案 0 :(得分:1)

如果设备锁定,那么我的怀疑是查看你最接近驱动程序级别/硬件的区域,(看你的游戏)是:

  • 显示
  • 声音

它也可能仅仅是由于处理/ CPU活动 - 但通常“用户级别”代码不能锁定您的手机 - 该功能是为内核软件保留的。

真正测试这个问题的唯一方法是掌握一个“可靠崩溃”的设备(例如莫扎特),并逐个执行禁用功能的过程。

如果这是一个Silverlight应用程序,那么我希望微软能够提供帮助 - 我会通过AppHub和他们当地的福音传播团队联系他们 - 他们将拥有帮助你的手段和动力。

如果有帮助的话,我很乐意协助测试开发人员解锁的HTC奖杯!

答案 1 :(得分:0)

我唯一能想到的莫扎特独有之处在于它拥有一台800万像素的摄像头,而其他所有摄像头都拥有500万像素的摄像头。

您是否正在使用CameraCaptureTask并期望返回的图像具有一定的大小?

除此之外,应用程序做了什么?您使用的是哪些服务和设备功能?

您是否在后台线程上运行任何网络访问?

答案 2 :(得分:0)

在开发my WP7 app时我遇到了大致相同的问题。据我所知,它不像设备绑定那么多模型绑定。事实上,我将我的应用程序部署到了15+ Trophy(我的公司为其所有员工提供了其中一个),并且它会反复崩溃,其中一些都拥有相同的固件。我通过评论得到的一些反馈似乎表明它也是在野外发生的。

在我的情况下,当应用程序启动时,崩溃主要发生(仅?)。互联网连接和崩溃之间似乎存在强烈的相关性,因为我可以通过将手机置于飞行模式,从我的计算机上拔下网络电缆然后部署应用程序来“重新创建”崩溃。在这种情况下,它也会立即崩溃,并且不会引发事件或断点。

我的直觉告诉我它可能与地图控件有关,因为在应用程序加载时它往往会对糟糕的连接做出反应(如显示错误消息,表明在同时显示地图时无法加载卡) ) 您的应用程序是否也使用地图控件(可能与Pivot控件结合使用?)

答案 3 :(得分:0)

某些设备存在需要在项目中将内容设置为“内容”而非“嵌入资源”的问题。

虽然我更多地听说过与应用启动时间有关的问题,就像某些设备(HD7?)一样,应用程序的负载花了足够的时间让应用程序永远不允许启动,操作系统认为它正在服用太久了,杀了它。