我正在尝试在我的主Activity中定义一个Context并在我的AsyncTask中使用它,但是它给出了一个空引用?
在这里,我在我的主Activity中测试它,同样的错误发生在我的AsyncTask中:
public class MainActivity extends AppCompatActivity {
public Context mContext;
public Context getContext(Context context) {
this.mContext = context;
mContext.getContentResolver();// null object reference error
return mContext;
}
答案 0 :(得分:1)
AppCompatActivity
是 Context
您不需要该字段。只需使用MainActivity.this
,您需要在该类中使用Context
。
第二个问题 - 如果mContext.getContentResolver();
抛出空指针,那么你只是将一个空上下文传递给该方法......
基本上,为什么要将参数传递给get方法?
public Context getContext(Context context) { <-- null
this.mContext = context; // <-- null
mContext.getContentResolver();// <-- Just used null... exception!
return mContext; // <-- null, and this is parameter you just provided, anyway...
或者,
How can getContentResolver() be called in Android?
直接直接致电getContentResolver()
。
答案 1 :(得分:0)
我看到的第一个问题是方法getContentResolver()
不存在,所以反过来它会使对象引用为null,因为可能没有这样的方法。如果有getContentResolver
方法,则应在示例中包含该方法:)
答案 2 :(得分:0)
您是否尝试设置或获取上下文?我会有一个单独的方法来获取和另一个设置。
public void setContext(Context context) {
Objects.requireNotNull(context);
this.mContext = context;
mContext.getContentResolver();// Not sure if this should do anything?
}
public Context getContext() {
return mContext;
}