Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 三星Galaxy S II上的零星未知异常_Android_Httpclient - Fatal编程技术网

Android 三星Galaxy S II上的零星未知异常

Android 三星Galaxy S II上的零星未知异常,android,httpclient,Android,Httpclient,在测试一个应用程序时,我不断发现只有一台设备偶尔出现错误:GT-I9100(欧洲)三星Galaxy S II。这些错误不会发生在任何其他设备上,即使是SPH-D710(Sprint)三星Galaxy S II也不会发生 应用程序使用的URL不会更改。它们与我可以在web浏览器中输入的内容相同,或者与iOS和桌面版应用程序使用的内容相同。但有时他们会抛出一个未知的后异常,有时则不会 下面是我正在使用的代码的一个经过严格消毒的版本: AndroidHttpClient client = Androi

在测试一个应用程序时,我不断发现只有一台设备偶尔出现错误:GT-I9100(欧洲)三星Galaxy S II。这些错误不会发生在任何其他设备上,即使是SPH-D710(Sprint)三星Galaxy S II也不会发生

应用程序使用的URL不会更改。它们与我可以在web浏览器中输入的内容相同,或者与iOS和桌面版应用程序使用的内容相同。但有时他们会抛出一个未知的后异常,有时则不会

下面是我正在使用的代码的一个经过严格消毒的版本:

AndroidHttpClient client = AndroidHttpClient.newInstance(activity.getString(R.string.user_agent));
HttpPost httpPost = new HttpPost("http://" + subdomainId + ".website.com/doSomething.aspx");

  try {
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("parameter1", value1));
    nameValuePairs.add(new BasicNameValuePair("parameter2", value2));
    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    // Execute HTTP Post Request
    HttpContext httpContext = new BasicHttpContext();
    HttpResponse response = client.execute(httpPost, httpContext);

  ... ...
AndroidHttpClient=AndroidHttpClient.newInstance(activity.getString(R.string.user_agent));
HttpPost-HttpPost=newhttppost(“http://“+subdomainId+”.website.com/doSomething.aspx”);
试一试{
//添加您的数据
List nameValuePairs=新的ArrayList();
添加(新的BasicNameValuePair(“参数1”,值1));
添加(新的BasicNameValuePair(“参数2”,值2));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpContext HttpContext=新的BasicHttpContext();
HttpResponse response=client.execute(httpPost,httpContext);
... ...

三星Galaxy S II是否有任何怪癖可能导致这种情况?它运行的是Android 2.3.6。

不可靠或不存在的互联网连接可能会导致未知的后异常。您只需使用try/catch块来捕获这些,并采取任何必要的步骤来解决问题(可能要求用户检查其互联网连接)


我猜欧洲版有更多问题的原因是因为它在这里没有服务(假设你在美国工作)?

不可靠或不存在的internet连接可能会导致未知的后异常。您应该使用try/catch块来捕获这些异常,并执行任何必要的步骤来解决问题(可能要求用户检查其internet连接)


我猜欧洲版出现更多问题的原因是因为这里没有服务(假设你在美国工作)?

正如其他人所说,这可能是由于不存在互联网连接造成的

也许可以尝试添加一个请求重试处理程序,如下

    HttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(6, true);

    httpClient.setHttpRequestRetryHandler(retryhandler);
这样,如果internet在一瞬间中断,您可以使用httpclient来处理它。apache还建议您在出现任何传输错误时重试

通常,传输异常是非致命的,可以从中恢复 通过重试失败的方法


因此,我建议无论如何都使用重试处理程序是一种好的做法,因为其他人说它可能是由不存在的internet连接引起的

也许可以尝试添加一个请求重试处理程序,如下

    HttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(6, true);

    httpClient.setHttpRequestRetryHandler(retryhandler);
这样,如果internet在一瞬间中断,您可以使用httpclient来处理它。apache还建议您在出现任何传输错误时重试

通常,传输异常是非致命的,可以从中恢复 通过重试失败的方法


因此,我建议无论如何使用重试处理程序是一种好的做法

我在Droid Razr上运行的另一个应用程序的ACRA崩溃报告中看到了另一个例子。该代码使用androidHttpClient.execute(httpPost)。硬编码的URL是完全有效的,但抛出的UnknownHostException当设备没有internet连接时是否会发生UnknownHostException?不稳定(甚至不存在)internet连接可能会导致未知的HostException。问题很可能是一个脆弱的dns服务器,而不是连接本身。我在Droid Razr上运行的另一个应用程序的ACRA崩溃报告中看到了另一个例子。该代码使用androidHttpClient.execute(httpPost)。硬编码的URL是完全有效的,但抛出的UnknownHostException当设备没有internet连接时是否会发生UnknownHostException?不稳定(甚至不存在)internet连接可能会导致未知的后异常。问题很可能是dns服务器不稳定,而不是连接本身。我还没有机会测试这一点,并确定这是否是解决此偶发错误的可靠解决方案……但重试internet连接似乎是共识,也是任何人都有的最佳选择我还没有机会测试这一点,并确定这是否是解决这一偶发错误的可靠解决方案……但重试互联网连接似乎是共识,也是所有人提出的最佳选择。