我试图从一个URL加载一些图片。
我有一个私人的空虚让所有的工作。起作用了..。但是我有个问题,我想在我的图像加载的时候显示一个对话框的进度.
我正在尝试使用AsyncTask,但在执行doInBackground时遇到了问题!
这是我的密码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new EjecutarTarea().execute();
}
private void Principal() {
//Code to download images from URL
}
public class EjecutarTarea extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
dialog = new ProgressDialog(StadioNenaActivity.this);
dialog.setMessage("Cargando..");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();
}
protected Void doInBackground(Void... Unsed) {
Principal(); //i have an error here
return null;
}
protected void onProgressUpdate(Void... unused) {
}
protected void onPostExecute(Void unused) {
dialog.dismiss();
}
}
谢谢你的帮助!
这是日志上的错误..。它在代码主体()的某些部分中返回null .
我不知道为什么,当我把校长放在Oncreate,它的工作很棒!
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): FATAL EXCEPTION: AsyncTask #1
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): java.lang.RuntimeException: An error occured while executing doInBackground()
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at android.os.AsyncTask$3.done (AsyncTask.java:200)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at java.lang.Thread.run(Thread.java:1096)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): Caused by: java.lang.NullPointerException
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:112)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at org.json.JSONTokener.nextValue(JSONTokener.java:90)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at org.json.JSONArray.<init>(JSONArray.java:87)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at org.json.JSONArray.<init>(JSONArray.java:103)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at Stadio.bacha.stadionena.StadioNenaActivity.Principal(StadioNenaActivity.java:121)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at Stadio.bacha.stadionena.StadioNenaActivity$EjecutarTarea.doInBackground(StadioNenaActivity.java:262)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at Stadio.bacha.stadionena.StadioNenaActivity$EjecutarTarea.doInBackground(StadioNenaActivity.java:1)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at android.os.AsyncTask$2.call(AsyncTask.java:185)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-10 17:56:01.988: ERROR/AndroidRuntime(10907): ... 4 more
当我这样走的时候:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Principal();
}
它可以工作,但它不显示对话框的进度.
发布于 2011-10-10 23:02:56
问题是在调用NullPointerException时存在一个doInBackground()
。确保在调用AsyncTask.execute()
或提供某种阻塞机制之前所有数据都是可用的。
发布于 2014-01-14 14:07:59
确保你的网址是正确的。我得到这个错误是因为我使用了192.168.1.173/webroot路径..。我的意思是我们的http://部分作为url。在我试过之后
http://192.168.1.173/web application path ...
效果很好。
https://stackoverflow.com/questions/7719489
复制相似问题