Java Android异步任务崩溃

Java Android异步任务崩溃,java,android-asynctask,Java,Android Asynctask,嗨,我对AsyncTask有问题,我正在解析来自web的一些数据,但当我想使用此类时,我的应用程序崩溃: 10-31 12:29:29.941: E/AndroidRuntime(3741): FATAL EXCEPTION: AsyncTask #2 10-31 12:29:29.941: E/AndroidRuntime(3741): java.lang.RuntimeException: An error occured while executing doInBackground() 1

嗨,我对AsyncTask有问题,我正在解析来自web的一些数据,但当我想使用此类时,我的应用程序崩溃:

10-31 12:29:29.941: E/AndroidRuntime(3741): FATAL EXCEPTION: AsyncTask #2
10-31 12:29:29.941: E/AndroidRuntime(3741): java.lang.RuntimeException: An error occured while executing doInBackground()
10-31 12:29:29.941: E/AndroidRuntime(3741):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.lang.Thread.run(Thread.java:856)
10-31 12:29:29.941: E/AndroidRuntime(3741): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.util.ArrayList.get(ArrayList.java:304)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at morisson.Notowaniagieldowe.MainActivity$Cena.doInBackground(MainActivity.java:169)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at morisson.Notowaniagieldowe.MainActivity$Cena.doInBackground(MainActivity.java:1)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-31 12:29:29.941: E/AndroidRuntime(3741):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-31 12:29:29.941: E/AndroidRuntime(3741):     ... 5 more
代码是:

public class Cena extends AsyncTask<Integer,Void,String>{
ProgressDialog dialog;

@Override
protected String doInBackground(Integer... params) {

    int a = params[0];
    try {

        Document doc = Jsoup.connect("http://www.money.pl/gielda/gpw/akcje/").get();

        Elements elements = doc.select("td.ar");

        System.out.println("test2:" + elements.get(a).text());
        return elements.get(a).text();


    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

return null;
}
}
公共类Cena扩展异步任务{
进程对话;
@凌驾
受保护字符串doInBackground(整数…参数){
int a=参数[0];
试一试{
Document doc=Jsoup.connect(“http://www.money.pl/gielda/gpw/akcje/).get();
元素=文件选择(“td.ar”);
System.out.println(“test2:+elements.get(a.text());
返回元素。get(a.text();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
}

我还使用了另外两个使用AsyncTask的类,但我对它们没有任何问题。当我试图打印“test2”时会出现崩溃,当然,当我试图返回一个值时也会出现崩溃。有什么建议吗?

如果仔细检查错误日志,您会发现此处的实际错误是
ArrayIndexOutOfBound
异常。表示
元素。获取(a)
int a=params[0]很可能返回null

由于未捕获到异常(导致崩溃),我高度怀疑
int a=params[0]可能是问题的原因,因为它是唯一不在
try catch
块中的代码

try {
    Document doc = Joup.connect("http://www.money.pl/gielda/gpw/akcje/").get();
    Elements elements = doc.select("td.ar");
    if(elemetns!=null&&a!=null){
        System.out.println("test2:" + elements.get(a).text());
        return elements.get(a).text();
    }
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}