我遇到了一个奇怪的问题。 我正在处理应用程序targetAPI = 11.我正在使用Actionbar.TabListener来实现两个选项卡,一切都很好。但是我现在为德语字符串创建了一个新的“values-de”文件夹,用于德语设备。现在,当我将我的设备设置为德语并想要启动应用程序时,它会立即崩溃,因为它有一个nullpointer:
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
为什么只有将设备设置为德语才会出现(我假设它与我的值-de有关,我只是复制了整个“values”文件夹,将副本重命名为“values-de”)
如果没有庞大的设计解决方法,我怎么能解决这个问题呢?它非常适合英语,但我想添加多语言支持。
感谢。
编辑1 - Stacktrace :(抱歉忘了)
03-18 01:56:02.575: E/AndroidRuntime(23037): FATAL EXCEPTION: main
03-18 01:56:02.575: E/AndroidRuntime(23037): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.motioncoding.mobilesms/com.motioncoding.mobilesms.core.LaunchActivity}: java.lang.NullPointerException
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.os.Handler.dispatchMessage(Handler.java:99)
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.os.Looper.loop(Looper.java:137)
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.app.ActivityThread.main(ActivityThread.java:5041)
03-18 01:56:02.575: E/AndroidRuntime(23037): at java.lang.reflect.Method.invokeNative(Native Method)
03-18 01:56:02.575: E/AndroidRuntime(23037): at java.lang.reflect.Method.invoke(Method.java:511)
03-18 01:56:02.575: E/AndroidRuntime(23037): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-18 01:56:02.575: E/AndroidRuntime(23037): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-18 01:56:02.575: E/AndroidRuntime(23037): at dalvik.system.NativeStart.main(Native Method)
03-18 01:56:02.575: E/AndroidRuntime(23037): Caused by: java.lang.NullPointerException
03-18 01:56:02.575: E/AndroidRuntime(23037): at com.motioncoding.mobilesms.core.LaunchActivity.onCreate(LaunchActivity.java:43)
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.app.Activity.performCreate(Activity.java:5104)
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
03-18 01:56:02.575: E/AndroidRuntime(23037): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
03-18 01:56:02.575: E/AndroidRuntime(23037): ... 11 more
答案 0 :(得分:0)
将styles.xml
从values
复制到values-<lang>
的问题在于它不被允许并且会混淆Android,因为它是重复的。但是,values-<lang>
中允许的资源为strings.xml
和arrays.xml
,因为这些资源是唯一需要翻译的资源。
但是,如果它们定位到API的特定版本,则styles.xml
文件夹中可能会有dimens.xml
,colors.xml
和values-<lang>
。所以他们必须在values-de-v11
。