Reputation: 2845
So I am trying to get a string resource in my project but when I called context.getResources().getString(...)
, I get a NullPointerException
. In debug mode, I found out that the context isn't null but looking at its members, I found out that mResources
was null. Why are the resources not loaded for the activity context?
EDIT
Apparently, this is what triggered the Exception
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);
}
}
I had to move the initialization of someClass
to after super.onCreate()
as suggested by CommonsWare. Thanks.
Upvotes: 14
Views: 9734
Reputation: 1006584
If I had to guess, you are trying to call this in an initializer. Do not attempt to use getResources()
before the super.onCreate()
call in your activity returns.
Upvotes: 31