Android 获得;致命异常:AsyncTask“2”;。我不知道';我不知道是什么';是什么原因造成的
在尝试调用web服务并获取相应的json对象时,我遇到了一个致命的异常。我完全不知道该去哪里看,也不知道该纠正哪些错误 编辑:Android 获得;致命异常:AsyncTask“2”;。我不知道';我不知道是什么';是什么原因造成的,android,exception,android-asynctask,Android,Exception,Android Asynctask,在尝试调用web服务并获取相应的json对象时,我遇到了一个致命的异常。我完全不知道该去哪里看,也不知道该纠正哪些错误 编辑: 只要查看您的LogCat堆栈跟踪(在本例中),它就会告诉您需要知道的关于此异常是什么以及是什么导致了它: 线程以未捕获异常退出 告诉您已引发代码无法处理的异常 执行doInBackground()时出错 这表明异步任务中的doInBackground()函数引发了此未处理的异常 原因:java.lang.ClassCastException…HttpPost。。。(R
只要查看您的LogCat堆栈跟踪(在本例中),它就会告诉您需要知道的关于此异常是什么以及是什么导致了它: 线程以未捕获异常退出 告诉您已引发代码无法处理的异常 执行doInBackground()时出错 这表明异步任务中的doInBackground()函数引发了此未处理的异常 原因:java.lang.ClassCastException…HttpPost。。。(RestClient.java:275) 这表明您遇到了ClassCastException,这是源文件第275行的HttpPost调用导致的 编辑: 应该更仔细地阅读堆栈跟踪。。。正如HandlerExploit所发布的,是HttpPost抛出了这个错误,在这里您需要一个HttpGet。。。但以下调试方法仍然有效: 如果使用e.getMessage()添加额外的catch(ClassCastException e),则很可能会看到一条有用的错误消息,该消息更详细地描述了问题
在这种情况下,当我发现一个意外的异常像这样被抛出时,我倾向于添加一个临时的“catch all”(catch(exception e){e.printStackTrace()}),并在e.printStackTrace()上粘贴一个断点,这样我就可以看到有关异常的所有细节。。。也许这不是最有效的方法,但这是一个开始,当你在黑暗中 我最好的猜测是:
HttpGet req = (HttpGet) params[0];
正在返回一个HttpPost
,而不是HttpGet
请发布您正在调用的位置
newcallservicetask().execute()代码>该问题是一个职业铸造问题。你能在异步任务的doInBackground
方法中发布代码吗。谢谢,我想你放错代码了。粘贴调用CallServiceTask.excecute(…)的代码;来自RestClient.java。为了帮助我们,我们需要RestClient.java,不管他是否包装它,他仍然会看到完整的stacktrace。
private JSONObject executeRequest(HttpGet request, String url)
{
HttpClient client = new DefaultHttpClient();
JSONObject jsonObj = null;
client = getNewHttpClient();
HttpResponse httpResponse;
try {
httpResponse = client.execute(request);
HttpEntity entity = httpResponse.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
String response = convertStreamToString(instream);
try {
jsonObj = new JSONObject(response);
} catch (JSONException e1) {
e1.printStackTrace();
}
// Closing the input stream will trigger connection release
instream.close();
}
} catch (ClientProtocolException e) {
client.getConnectionManager().shutdown();
e.printStackTrace();
} catch (IOException e) {
client.getConnectionManager().shutdown();
e.printStackTrace();
}
return jsonObj;
}
HttpGet req = (HttpGet) params[0];