好吧,我对这个问题不知所措,这对我来说没有意义。在我的应用程序中,我的应用程序类如下所示:

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 和三星设备上,大约 50% 的错误是应用程序在后台运行,但仍然足以让至少两个人提示。我不知道这怎么会发生。我不知道对于 sContext 在那时如何为空?

最佳答案

确保您的manifest.xml中有这个

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

我猜问题出在这条线上:
SomeClass.someMethod(sContext.getString(R.string.some_string));

因此,您可以使用getResources().getString()...或仅使用getString(R.string.some_string)而不是sContext.getString(...)来完成此操作

关于android - getApplicationContext() 在 Application 的 onCreate() 中返回 null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52697458/

10-10 23:04