我的代码完全适用于Android的上层版本。但每当我试图在Jelly Bean 4.2.2上运行该程序时,它就无法运行。我的最低SDK版本是:14,目标SDK版本是:22
我的代码是:
private class AuthAsync extends AsyncTask<String, Integer, String> {
@Override
protected void onPreExecute() {
}
@Override
protected String doInBackground(String... params) {
HttpGet request = new HttpGet(params[0] + params[1]);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseTxt = null;
HttpClient client = PaywellServices.getTrustedHttpClient();
try {
responseTxt = client.execute(request, responseHandler);
} catch (ClientProtocolException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return responseTxt;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
Log.e("Log","Try");
Log.e("Result",result);
if (result != null && result.contains("@")) {
String splitedArray[] = result.split("@@@");
}
} catch (ArrayIndexOutOfBoundsException e) {
Log.e("Log","Catch");
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
从技术上讲,从doInBackground返回的结果将传递给onPostExecute 。
因此 onPostExecute()上的结果输入参数与 doInBackground()中返回的字符串相同,为 responseTxt < / p>
乍一看,我特别想到了这段代码:
try {
responseTxt = client.execute(request, responseHandler);
} catch (ClientProtocolException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
return responseTxt;
对于调试,请在返回之前检查 responseTxt 的值(或将其打印到控制台)。
我的线索是,在调用方法时, PayWell 客户端的结果返回null:
responseTxt = client.execute(request, responseHandler);
答案 1 :(得分:0)
我的问题是,我的手机正在收到Google的身份验证错误。出于这个原因,我无法得到预期的回应。解决了Google身份验证问题后,我的代码运行正常。