[英]java.lang.ClassCastException: cannot be cast to java.lang.Object
[英]AsyncTask throwing Error “Caused by java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.Void[]” on doinbackground()
我的Asynctask抛出此错误
"Caused by java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.Void[]"
码:
protected Object doInBackground(Void... params)
上面的方法仅适用于特定用户,而不适用于所有用户。有人能告诉我像“ AsyncTask Void,Void,Object”这样的无效传递是引起我问题的原因吗? 下面我附上我的代码
private class RegisterTask extends
AsyncTask<Void, Void, Object>
{
protected void onPreExecute() {
super.onPreExecute();
}
}
protected Object doInBackground(Void... params) {
return null;
}
protected void onPostExecute(Object result) {
super.onPostExecute(result);
}
}`
检查传递给new RegisterTask().execute()
方法的参数。 也许您使用Object
类型而不是Void
。
更改您的RegisterTask
类以扩展AsyncTask <Object, Void, Object>
。 在此处了解有关AsyncTask
更多信息。
您可以使用对象作为参数创建AsyncTask,即使您不使用它也不会造成伤害
private class RegisterTask extends AsyncTask<Object, Void, Object>
{
protected void onPreExecute() {
super.onPreExecute();
}
}
protected Object doInBackground(Object... params) {
return null;
}
protected void onPostExecute(Object result) {
super.onPostExecute(result);
}
}
替代方法是您初始化AsyncTask的方式,这是通用方法吗?
//Change
AsyncTask asyncTask = new RegisterTask (...);
然后,删除上面的内容,并在正确的参数声明侧创建您的AsyncTask。
AsyncTask<Void, Void, Object> asyncTask = new RegisterTask (...);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.