我正在尝试使当前的 4.0 应用程序与 2.1 android 设备兼容。我曾经在调用 HttpResponse 时遇到异常,但我不知道为什么。我所知道的是,对于 API 8,有两行我需要注释掉以避免错误并进行更多调整,我很高兴。我不完全确定这些行是做什么的,或者它们是否是问题的原因(因为我刚刚修改了一些教程中的代码片段),但代码现在正在工作......这些是我注释掉的行:
/*StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
*/
但在调试模式下。一旦我尝试了发布模式,我就会到达应用程序之前冻结的同一个地方......我放置了一些 Toast 消息作为调试消息来检查发布模式,但它们没有显示(可能是因为我有一个 progressDialog 正在进行)。
主要问题是在调试模式下它现在工作正常(在 2 个不同的设备上测试),但发布模式一直有问题(我什至无法调试它)。
这是我认为我的应用程序失败的代码。在调试模式下,它曾经在调用 HttpResponse 时失败。有任何想法吗?
public String Send(String jsonString, String url, Context ctxt)
{
try{
System.out.println(jsonString);
HttpPost request = new HttpPost(url);
request.setHeader("Accept", "text/xml");
request.setHeader("Host", "www.my-host.com" );
request.setHeader("Content-type", "application/json");
StringEntity stringEnt = new StringEntity(jsonString);
stringEnt.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
request.setEntity(stringEnt);
//instantiates httpclient to make request
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(request);
HttpEntity responseEntity = response.getEntity();
//Obtenemos el xml de la respuesta
String responseXML = EntityUtils.toString(responseEntity);
return responseXML;
}
catch(Exception e)
{
Toast.makeText(ctxt, "Error registering user", Toast.LENGTH_SHORT).show();
Log.i("login", "" + e.getMessage());
return "error";
}
}
}
谢谢