好的,我对这个问题不知所措,这对我来说意义不大。在我的应用中,我的应用程序类看起来像这样:
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
在那时可能为空吗?
答案 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(...)