현재 4.0 앱을 2.1 Android 기기와 호환 가능하게하려고합니다. HttpResponse를 호출 할 때 예외가 발생했는데 이유를 모르겠습니다. 내가 아는 전부는 API 8의 경우 오류를 피하기 위해 주석을 달고 두 개 이상의 조정할 수있는 행이 두 개 있으며 갈 수 있다는 점입니다. 이 줄이 무엇인지 또는 문제의 원인인지 (내가 튜토리얼에서 코드 조각을 수정 한 이래로) 코드가 작동 중입니다. 다음은 주석 처리 된 줄입니다.다른 동작 디버그 대 릴리스 모드 android - release mode freezes
/*StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
*/
그러나 디버그 모드입니다. 내가 릴리스 모드를 시도해 본 후에는 앱이 얼어 붙은 같은 장소에 도착합니다 ... 토스트 메시지를 디버깅 메시지로 배치하여 릴리스 모드를 확인했지만 디스플레이하지 않습니다 (어쨌든 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";
}
}
}
감사
StrictMode는 이전 API 레벨 9에서 작동하지 않습니다. Android 2.1은 API 7입니다. – marimaf
고맙습니다. – marimaf