【问题标题】:WP7 App exits when deployedWP7 应用程序在部署时退出
【发布时间】:2010-12-02 11:46:41
【问题描述】:

我一直在开发一个 WP7 应用,其中包含带有 Bing 地图的“定位我”样式功能。

我有一个早期的原型 WP7 设备,我可以部署到这个没有问题。我的 2 位同事拥有零售 WP7 设备,并且在运行该应用程序时,它总是在某个时间点退出。

我假设崩溃发生在这段代码中:

    void UpdateMap(GeoPosition<GeoCoordinate> position, double zoom)
    {


        _foundLocation = position;
        mapLocation.Center = position.Location;
        mapLocation.ZoomLevel = zoom;
        txtStatus.Text = "Found you within " + position.Location.HorizontalAccuracy.ToString(AccuracyFormat) + " meters";

        //Display address to user
        DisplayLocationAddress(position.Location.Latitude, position.Location.Longitude);

        //Stop the watcher if horizontal accuracy is high enough for requirements to converse battery power.
        if (watcher != null && watcher.Position.Location.HorizontalAccuracy <= DesiredAccuracy)
        {
            watcher.Stop();
        }
    }

因为显示了有关Horizo​​ntalAccuracy的消息以及从反向地理编码获得的地址。

但是地图只是变白(好像它即将开始以位置为中心)然后应用程序退出。

通过 Visual Studio 2010 调试应用程序时,这两种设备都可以正常工作。

我能想到的是,在连接到我的计算机时,设备通过 USB 电缆使用互联网连接,但在断开连接时使用蜂窝数据。但是我想不出为什么这会让它退出。

由于两者都在调试时工作,我该如何继续追踪问题?

更新

我已按照建议实施了全局错误处理,但出现以下错误: 凭据无效或未指定,这 2 台设备无法正常工作。但是如上所述,仅在部署时,而不是在通过 Visual Studio 运行时。

【问题讨论】:

  • 这个错误是从哪里来的?堆栈跟踪是什么样的?
  • 实际上将错误追溯到从 Bing 地图反向地理编码 API 获取地址。在最后几分钟内没有进行任何更改,它已经开始工作。所以我假设这是 Bing 网络服务的错误?

标签: silverlight windows-phone-7 bing-maps


【解决方案1】:

您是否有一个全局异常处理程序,至少对于 UI 线程?您可能希望在发布版本中包含一个显示礼貌错误消息的内容,以及调试版本的异常详细信息。

这无济于事:

  • 在其他线程上抛出的异常
  • 堆栈溢出错误等不可恢复的异常

如果您从 VS2010启动它但没有调试 - 所以它仍在使用 USB 连接 - 它仍然会崩溃吗?

【讨论】:

  • 目前没有全局异常处理程序。我会添加一个,看看它会抛出什么。
【解决方案2】:

Bing 地图凭据有问题?

 <my:Map 
        Margin="6"
        CredentialsProvider="{StaticResource BingCredentials}">

等等。

【讨论】:

    猜你喜欢
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多