我的上下文给了我一个空引用指针

时间:2016-12-17 19:35:47

标签: java android nullpointerexception

我正在尝试在我的主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;
} 

3 个答案:

答案 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;
}