【问题标题】:What could be causing my WP7 app to crash on only some models?什么可能导致我的 WP7 应用程序仅在某些型号上崩溃?
【发布时间】:2011-02-28 15:36:14
【问题描述】:

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

问题是我的应用程序仅在某些型号的手机上崩溃。我有一个 HTC 环绕,它运行良好。它还在三星 Focus 上进行了测试,并且可以在那里工作。它在 HTC mozart 上经常崩溃。还有其他手机崩溃,但我不知道它们是什么型号。我没有 HTC mozart 的访问权限,所以调试非常困难。

我正在处理应用程序 UnhandledException 事件,并且我已经尝试捕获每个后台线程。错误处理代码永远不会运行。

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

这些症状对我来说听起来像是一个僵局。虽然我已经检查了代码并且没有线程一次进入超过 1 个锁。

任何关于我应该如何追踪它的想法将不胜感激。

编辑:这是my game 的WP7 版本。我刚刚能够与一位使用 HTC mozart 的志愿者确认,用于在网络上运行的代码的最简单转换将在手机上崩溃。那是代码没有网络、隔离存储或声音。

我还应该提到它已通过认证并在市场上销售了几天,直到我将其撤下,因为它受到了不好的评价(因为它对某些人来说无法播放)

【问题讨论】:

  • 你在不止一首莫扎特上测试过它吗?也许某个特定的模型有一些损坏的内存并且你不走运?
  • 您能否将异常详细信息和堆栈跟踪写入日志文件并在应用程序重新启动时访问它以尝试找出问题所在?
  • 我认为我什至没有发现异常,因为我拥有的代码应该显示一个确认对话框,要求通过电子邮件将其发送给我。而这永远不会发生。不过我想这值得一试。
  • 我已经尝试将它发布到市场上,我收到的所有反馈都报告它崩溃了。 1天后我把它取下来修复它。其中一位 cmet 特别提到他们正在使用莫扎特。
  • 您是否在使用复杂的控件,例如 WebBrowser 或 Bing 地图?

标签: silverlight windows-phone-7


【解决方案1】:

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

  • 显示器
  • 声音

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

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

如果这是一个 Silverlight 应用程序,那么我希望 Microsoft 愿意提供帮助 - 我会通过 AppHub 和他们当地的 Evangelist 团队与他们联系 - 他们将有能力和动力来帮助你。

如果有帮助,我很乐意协助测试开发者解锁的 HTC Trophy!

【讨论】:

  • 只是重读这个......一定要检查对 XNA 的任何访问的同步锁定 - 例如音效。
  • 我可以排除声音,因为我以前使用媒体元素来发出声音,但现在我使用XNA。这个问题在改变之前和之后一直存在。一旦我发现它是什么,我会在 AppHub 上发布它。 (前提是这不是我的错)我想知道 HTC Trophy 上会发生什么。怎么联系你?
  • 我在 slodge dot com - 如果你给我发一个 XAP 邮件,那么我会在英国时间明天早些时候安装它
【解决方案2】:

我能想到的唯一莫扎特独特之处是它有一个 8MP 摄像头,而所有其他的都有一个 5MP 摄像头。

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

除此之外,该应用还能做什么?您正在使用哪些服务和设备功能?

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

【讨论】:

  • 我没有使用相机。这是我的game 的 WP7 版本,我已经在网络上托管了一段时间。它不使用任何特定于 windows 手机的东西,它最初只是用于网络。我确实在后台线程上运行了网络访问。我正在使用 System.Net.HttpWebRequest 来使用 Google 分析。
【解决方案3】:

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

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

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

【讨论】:

    【解决方案4】:

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

    虽然我更多地听说过与应用程序启动时间相关的问题,但在某些设备(HD7?)上,应用程序的加载花费了足够的时间,以至于应用程序从未被允许启动,但操作系统认为它正在花费太长了,杀了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-29
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多