调用context.getResources()返回null

时间:2014-06-23 19:41:46

标签: android nullpointerexception android-context

所以我想在我的项目中获取一个字符串资源但是当我调用context.getResources().getString(...)时,我得到一个NullPointerException。在调试模式下,我发现上下文不是null但是查看其成员,我发现mResources为空。为什么没有为活动上下文加载资源?

修改

显然,这是触发异常的原因

public class MyActivity extends Activity {

    SomeClass someClass = new SomeClass(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
}


public class SomeClass {

    private final Context mContext;

    public SomeClass(Context context) {
        mContext = context;
        mContext.getResources().getString(R.string.app_name);
    }
}

我必须按CommonsWare的建议将someClass的初始化移至super.onCreate()之后。感谢。

1 个答案:

答案 0 :(得分:25)

如果我不得不猜测,你试图在初始化程序中调用它。在您的活动返回getResources()来电之前,请勿尝试使用super.onCreate()