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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With