更改设备的语言后,我的应用程序崩溃。在更改语言时,应用程序在后台运行。错误是更改语言后,应用程序在getResources()中崩溃
java.lang.NullPointerException
错误消息指出这个调用(内部SherlockFragment
)
tv.setText(getActivity().getResources().getString(R.string.d));
我能做些什么来避免这个错误?
我的文件夹结构是:
res/
values/strings.xml
values-de/strings.xml
values-fr/strings.xml
完整的日志:
01-30 23:41:30.150: E/AndroidRuntime(17414): FATAL EXCEPTION: main
01-30 23:41:30.150: E/AndroidRuntime(17414): java.lang.NullPointerException
01-30 23:41:30.150: E/AndroidRuntime(17414): at com.myapp.countdown.CountdownFragment$1.onTick(CountdownFragment.java:58)
01-30 23:41:30.150: E/AndroidRuntime(17414): at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:124)
01-30 23:41:30.150: E/AndroidRuntime(17414): at android.os.Handler.dispatchMessage(Handler.java:99)
01-30 23:41:30.150: E/AndroidRuntime(17414): at android.os.Looper.loop(Looper.java:137)
01-30 23:41:30.150: E/AndroidRuntime(17414): at android.app.ActivityThread.main(ActivityThread.java:4921)
01-30 23:41:30.150: E/AndroidRuntime(17414): at java.lang.reflect.Method.invokeNative(Native Method)
01-30 23:41:30.150: E/AndroidRuntime(17414): at java.lang.reflect.Method.invoke(Method.java:511)
01-30 23:41:30.150: E/AndroidRuntime(17414): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
01-30 23:41:30.150: E/AndroidRuntime(17414): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
01-30 23:41:30.150: E/AndroidRuntime(17414): at dalvik.system.NativeStart.main(Native Method)
除了同意@SQLiteNoob以外,不能做任何其他事情,请遵循Google规范,并在给定链接上阅读本地化的mor。你似乎没有遵循规范(资源结构),因此你会得到NPE。 – Robert
其实我有这个结构。也许它与片段/活动有关?因为它发生在应用程序在后台。 – user1908375
如果你调用一个不是所需语言的字符串,你也可以从它得到一个NPE - 检查? – SQLiteNoob