getApplicationContext()在应用程序的onCreate()中返回null

时间:2018-10-08 07:36:22

标签: android

好的,我对这个问题不知所措,这对我来说意义不大。在我的应用中,我的应用程序类看起来像这样:

public class MyApplication extends MultiDexApplication {
    private static Context sContext;
    @Override
    public void onCreate() {
        super.onCreate();
        sContext = getApplicationContext();
        SomeClass.someMethod(sContext.getString(R.string.some_string));
        [...]
    }
    [...]
}

该应用程序本身运行一些服务。现在由于某种原因,我得到了有关用户获得sContext.getString(R.string.some_string)的NullPointerException的报告。老实说,数量很少,主要是Android 4和Samsung设备上的用户,大约有50%的错误使应用程序在后台运行,但仍然足以引起至少两个人的抱怨。而且我不知道这怎么会发生。我不知道对于不到1%的用户怎么可能发生这种情况。有没有人遇到过类似的事情,或者知道sContext在那时可能为空吗?

1 个答案:

答案 0 :(得分:0)

确保您的manifest.xml中有这个

<application android:name="packagename.MyApplication"/>

我想问题就在这条线上:

SomeClass.someMethod(sContext.getString(R.string.some_string));

因此,您可以使用getResources().getString()...或仅使用getString(R.string.some_string)代替sContext.getString(...)