基本的Android的AsyncTask,在执行doInBackground出现错误() [英] Basic Android AsyncTask, an error occurred while executing doInBackground()
问题描述
[解决]
我试图创建如图所示为Android的API文档中使用AsyncTask的一个基本线索。不过,我穿过一个错误来尝试执行的最简单的线程时。
的AsyncTask任务=新的AsyncTask<无效,整型,布尔>(){ @覆盖
保护布尔doInBackground(虚空......为arg0){
尝试{
视频下载(6000);
的System.out.println(延迟测试测试测试);
}赶上(例外五){ } 返回true;
}
};
logcat的条目:
E / AndroidRuntime(21215):致命异常:AsyncTask的#1
E / AndroidRuntime(21215):了java.lang.RuntimeException:执行doInBackground发生错误()
E / AndroidRuntime(21215):在android.os.AsyncTask $ 3.done(AsyncTask.java:200)
E / AndroidRuntime(21215):在java.util.concurrent.FutureTask中$ Sync.innerSetException(FutureTask.java:274)
E / AndroidRuntime(21215):在java.util.concurrent.FutureTask.setException(FutureTask.java:125)
E / AndroidRuntime(21215):在java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:308)
E / AndroidRuntime(21215):在java.util.concurrent.FutureTask.run(FutureTask.java:138)
E / AndroidRuntime(21215):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
E / AndroidRuntime(21215):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:581)
E / AndroidRuntime(21215):在java.lang.Thread.run(Thread.java:1027)
E / AndroidRuntime(21215):java.lang.ClassCastException:致[Ljava.lang.Object;
E / AndroidRuntime(21215):在hlf.scenes.Intro $ 2.doInBackground(Intro.java:1)
E / AndroidRuntime(21215):在android.os.AsyncTask $ 2.call(AsyncTask.java:185)
E / AndroidRuntime(21215):在java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:306)
E / AndroidRuntime(21215):... 4个
如果有人可以帮助我解决这个我会非常AP preciative!
谢谢
修正:
的AsyncTask<无效,整型,布尔>任务=新的AsyncTask<无效,整型,布尔>()
这<一个href=\"http://beautifuldiscovery.word$p$pss.com/2011/03/17/strange-classcastexception-with-asynctask/\"相对=nofollow>帖子解释了原因。基本上,因为你没有任何类型的,它期待声明引用作为的AsyncTask
对象的一切。给声明类型:
的AsyncTask&LT;无效,整型,布尔&GT;任务=新...
和它应该知道如何处理它。
[solved]
I'm trying to create a basic thread using AsyncTask as shown in the documentation for the Android API. However, I'm coming across an error when trying to execute the most simplest of threads.
AsyncTask task = new AsyncTask<Void, Integer, Boolean>() {
@Override
protected Boolean doInBackground(Void... arg0) {
try {
Thread.sleep(6000);
System.out.println("DELAYED TEST TEST TEST");
}catch(Exception e) {
}
return true;
}
};
Logcat entry:
E/AndroidRuntime(21215): FATAL EXCEPTION: AsyncTask #1
E/AndroidRuntime(21215): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(21215): at android.os.AsyncTask$3.done(AsyncTask.java:200)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
E/AndroidRuntime(21215): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
E/AndroidRuntime(21215): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
E/AndroidRuntime(21215): at java.lang.Thread.run(Thread.java:1027)
E/AndroidRuntime(21215): Caused by: java.lang.ClassCastException: [Ljava.lang.Object;
E/AndroidRuntime(21215): at hlf.scenes.Intro$2.doInBackground(Intro.java:1)
E/AndroidRuntime(21215): at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
E/AndroidRuntime(21215): ... 4 more
If anyone could help me solve this I'd be really appreciative! Thanks
Fix:
AsyncTask<Void, Integer, Boolean> task = new AsyncTask<Void, Integer, Boolean>()
This post explains why. Basically, since you are declaring the reference as AsyncTask
without any types, it is expecting Objects for everything. Give the declaration types:
AsyncTask<Void, Integer, Boolean> task = new ...
and it should know how to handle it.
这篇关于基本的Android的AsyncTask,在执行doInBackground出现错误()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!