02-24 15:53:59.789: A/libc(11909): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 11909
程序crash掉的时候logcat只有这一行日志
在其他手机上不会出现这个问题
经排查执行下面这段代码时报错
public HttpDTOBase sendJSON(HttpDTOBase httpDto) {
String httpUrl = HTTP_URL + httpDto.getBsCode()
+ ConstantForHttp.HTTP_HOUZHUI;
System.out.println("URL:" + httpUrl);
HttpDTOBase retDto = new HttpDTOBase();
HttpDTOBase errorDto = new HttpDTOBase();
HttpResponse response = null;
String strsResult = "Error";
// 从池中取出共享资源
HttpClientImpl httpclientimpl = null;
DefaultHttpClient httpclient = null;
HttpPost post = new HttpPost(httpUrl);
// 设置session
if (JSESSIONID.trim().length() != 0) { // 设置session
post.setHeader("Cookie", "JSESSIONID=" + JSESSIONID);
}
try {
httpclientimpl = httpclientpool.getFreeSharedConn();
httpclient = httpclientpool.getShareConn(httpclientimpl);
// 做MAC校验
SHA1Strategy.createMacData(httpDto);
JSONObject obj = JsonPares.dtoToJSONObject(httpDto);// 将上送数据封装为json.
System.out.println("发送数据:" + obj.toString());
StringEntity se = new StringEntity(obj.toString(), HTTP.UTF_8);
se.setContentType("application/json"); // 申明发送数据类型为json类型
post.setEntity(se);
response = httpclient.execute(post);// 发送数据并接收返回
if (response.getStatusLine().getStatusCode() == 200) {// 如果状态码为200,就是正常返回
strsResult = EntityUtils
.toString(response.getEntity(), "UTF-8");
} else {
strsResult = "{'data':{},'FAPErrorCode':\"9999\",'FAPErrorMessage':\"服务端异常\",'success':false}";
}
System.out.println("接收数据:" + strsResult);
retDto = JsonPares.parse(strsResult);
HashMap<String, Object> map = (HashMap<String, Object>) retDto
.get("data");
if(strsResult.contains("trueNameStatus") && strsResult.contains("authStatus")){
String trueNameStatus = (String) map.get("trueNameStatus");
String authStatus = (String) map.get("authStatus");
if (trueNameStatus != null && authStatus != null) {
MyApplication.getInstance().setTrueNameStatus(trueNameStatus);
MyApplication.getInstance().setAuthStatus(authStatus);
}
}
// 返回数据MAC验签
SHA1Strategy.CheckMacData(retDto);
return retDto;
} catch (SocketTimeoutException e) {
strsResult = "服务器连接失败,请稍后重试";
} catch (ClientProtocolException e) {
strsResult = "服务器连接失败,请稍后重试";
} catch (IOException e) {
strsResult = "服务器连接失败,请稍后重试";
} catch (Exception e) {
strsResult = "服务器连接失败,请稍后重试";
} finally {
try {
if (response != null) {
response.getEntity().consumeContent();
}
} catch (IOException e) {
e.printStackTrace();
}catch (Exception e2) {
}// 中断本次连接请求,准备下一次连接。
if (httpclientimpl != null) {
// 释放httpclient池的资源
httpclientpool.releaseSharedConn(httpclientimpl);
}
}
retDto.setValue("FAPErrorCode", "9999");
retDto.setValue("FAPErrorMessage", "服务端异常1");
errorDto.setValue("msg", strsResult);
retDto.setValue("errors", errorDto);
retDto.setValue("success", "false");
// 有错误的返回
return retDto;
}
.so 库不兼容引起的