Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android类构造函数未启动,导致上下文空指针异常?_Android_Constructor_Nullpointerexception_Android Context - Fatal编程技术网

Android类构造函数未启动,导致上下文空指针异常?

Android类构造函数未启动,导致上下文空指针异常?,android,constructor,nullpointerexception,android-context,Android,Constructor,Nullpointerexception,Android Context,我目前正在编写一个类,使用AsyncTask将一些数据导出到CSV。我已经编写了这个类,但是当我调用它的构造函数并在要设置的上下文中传递时,我在类的上下文中得到一个空指针异常。我的CSV编写器类如下: public class ExportCSVTask extends AsyncTask<String, Void, Boolean> { Context mContext; public ExportCSVTask(Context context)

我目前正在编写一个类,使用AsyncTask将一些数据导出到CSV。我已经编写了这个类,但是当我调用它的构造函数并在要设置的上下文中传递时,我在类的上下文中得到一个空指针异常。我的CSV编写器类如下:

public class ExportCSVTask extends AsyncTask<String, Void, Boolean> {

        Context mContext;

        public ExportCSVTask(Context context){
            Log.e("Error in MainActivity","Inside the Constructor");
            mContext = context;
        } 

        private final ProgressDialog dialog = new ProgressDialog(mContext);

我真的很想在这方面得到一些帮助,因为我很难理解是什么导致了这个问题。

首先初始化成员变量,然后才调用构造函数。因此,对话框在
mContext
仍处于默认值
null
时初始化


将对话框初始化移动到构造函数,或者更好的是,
onPreExecute()

我认为问题在于您有以下语句:

private final ProgressDialog dialog = new ProgressDialog(mContext);
这是一个类级变量,赋值在构造函数之前运行。因此,此时,mContext为null

只需在没有赋值的情况下声明即可:

private final ProgressDialog dialog;
…并在构造函数内设置它(设置mContext后):

private final ProgressDialog dialog;
dialog = new ProgressDialog(mContext);