致命异常:AsyncTask的#1 [英] Fatal exception : AsyncTask #1

查看:375
本文介绍了致命异常:AsyncTask的#1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用一个AsynTask解析XML数据。
所以在活动我:

I want to use a AsynTask to parse XML data. So in the Activity i've :

static List<String> citations = null;

    static void setCitations(List<String> data) {
        citations = data;
    }

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {


      super.onCreate(savedInstanceState);

      new data().execute();

和数据类我:

class data extends AsyncTask<Void, Void, List<String>> {

    private XMLReader saxReader;
    private SimpleContentHandler simpleContentHandler;

    private List<String> citations;

    @Override
    protected void onPreExecute() {
        Log.i("AsyncTask", "onPreExecute");
    }

    @Override
    public void onPostExecute(List<String> citations) {
        GuiguiActivity.setCitations(citations);
    }


    @Override
    protected List<String> doInBackground(Void... params) {
              citations.add("TEST 1");citations.add("TEST 2");
              return citations;
         }   
}

相反,citations.add我我的XML解析器,但即使在这种情况下,与发生citations.add错误。

Instead of the citations.add i've my XML parser, but even in this case with citations.add errors occur.

10-24 15:28:46.647: E/AndroidRuntime(1160): FATAL EXCEPTION: AsyncTask #1
10-24 15:28:46.647: E/AndroidRuntime(1160): java.lang.RuntimeException: An error occured while executing doInBackground()
10-24 15:28:46.647: E/AndroidRuntime(1160):     at android.os.AsyncTask$3.done(AsyncTask.java:278)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at java.lang.Thread.run(Thread.java:856)
10-24 15:28:46.647: E/AndroidRuntime(1160): Caused by: java.lang.NullPointerException
10-24 15:28:46.647: E/AndroidRuntime(1160):     at guigui.first.project.data.doInBackground(data.java:82)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at guigui.first.project.data.doInBackground(data.java:1)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at android.os.AsyncTask$2.call(AsyncTask.java:264)
10-24 15:28:46.647: E/AndroidRuntime(1160):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)

我不明白问题出在哪里。

I don't see where the problem is.

感谢:)

推荐答案

您没有初始化引用字段。构造函数添加到您的数据类是这样的:

You didn't initialize citations field. Add a constructor to your data class like this:

public data(){
    citations = new ArrayList<String>();
}

这篇关于致命异常:AsyncTask的#1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆