Xamarin Android 应用程序在模拟器上运行,在使用 WebRequest 时在真实设备上崩溃

Xamarin Android app works on emulator, crashes on real device when using WebRequest

我正在使用此示例将一些数据从 link 获取到 Android 设备: https://msdn.microsoft.com/en-us/library/456dfw4f(v=vs.110).aspx

该应用程序在使用模拟器(Nexus 5 with Android Kit Kat)时工作正常,但是当我在实际 Android(Samsung S3 mini with Jellybean)上部署它(发布版本)时该应用程序启动,但之后崩溃 "Unfortunately .. has stopped working"。如果我不使用 WebRequest.Create,应用程序中的所有其他组件都可以正常工作。

WebRequest request = WebRequest.Create(
            "MY LINK HERE"); //with a real link ofcourse

        request.Credentials = CredentialCache.DefaultCredentials;
        WebResponse response = request.GetResponse();


        Stream dataStream = response.GetResponseStream();

        StreamReader reader = new StreamReader(dataStream);

        string responseFromServer = reader.ReadToEnd()

        reader.Close();
        response.Close();

我解决了这个问题。我不知道我必须设置权限才能使用互联网。

Project->Project Options->Build->AndroidApplication->Required permission->勾选Internet复选框并按OK。

在Properties下的AndroidManifest.xml文件中为App启用Internet权限如下:

<uses-permission android:name="android.permission.INTERNET" />

或通过以下步骤通过向导启用:

  • 右键单击项目和属性
  • 在Android清单
  • 在“必需的权限”下为 Internet 启用复选框

希望对您有所帮助