Android类构造函数未启动,导致上下文空指针异常?
我目前正在编写一个类,使用AsyncTask将一些数据导出到CSV。我已经编写了这个类,但是当我调用它的构造函数并在要设置的上下文中传递时,我在类的上下文中得到一个空指针异常。我的CSV编写器类如下: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)
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);