0

我正在学习 Xamarin 两个星期,并且正在学习 Xamarin.University 课程(使用基于 REST 的 Web 服务 (XAM150))。在练习中,我们必须简单地检查电话的连接。我在 Visual Studio 2017 中的模拟器(Android 7.0)做得很好。但是当我使用 Xamarin Live Player 在我的实际手机(Android 7.1)上尝试时,该应用程序将无法启动,并且我的手机上出现以下错误:

“可视化错误。索引超出了数组的范围。(IndexOutOfRangeExeption)”

我搜索了谷歌和 Xamarin.University 的论坛,但没有运气,似乎没有其他人有这个问题。当我调试时,它会在检查连接性时停止。我使用 Xam.Plugin.Connectivity 来询问连接,是的,它在项目的所有部分中都被引用。我来自使用网站上的这段代码:

using Plugin.Connectivity;

public App() {
   // The root page of your application
   MainPage = CrossConnectivity.Current.IsConnected 
        ? (Page) new NetworkViewPage() 
        : new NoNetworkPage();
}

对此进行调试:

using Plugin.Connectivity;
public App() {
    InitializeComponent();

    try {
        var isConnected = CrossConnectivity.Current.IsConnected;

        MainPage = isConnected
                   ? (Page)new NetworkViewPage()
                   : (Page)new NoNetworkPage();
    } catch (Exception e) {
        throw e;
    }
    //MainPage = new NetworkViewPage();
}

所有这些代码都适用于我的模拟器,但不适用于我的手机。我可以在手机上显示不同的页面,但在检查连接性时不能显示,因此错误确实来自插件,而不是来自我的页面。

有人知道我可以尝试做什么吗?

4

1 回答 1

0

Frauke Nonnenmacher 指出,这可能是Xamarin Live Player 的问题,显然这就是问题所在。如果我通过 USB 调试在手机上实现它,它工作得很好。我没有想到 Live Player 可能是问题,因为 Xamarin.University 希望您使用它,而且我没有在论坛上找到任何有同样问题的人。

我的猜测是,检查连接会给 Xamarin Live Player 带来问题,因为它可以通过网络运行,如果没有 wifi 连接,则无法使用 Player。所以也许那里出了问题。为什么它不起作用仍然是一个谜,但解决方法就是 USB 调试

于 2018-03-19T15:44:31.323 回答