getActionBar()= null用于自定义语言

时间:2013-03-18 00:48:07

标签: android tabs android-3.0-honeycomb

我遇到了一个奇怪的问题。 我正在处理应用程序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

1 个答案:

答案 0 :(得分:0)

styles.xmlvalues复制到values-<lang>的问题在于它不被允许并且会混淆Android,因为它是重复的。但是,values-<lang>中允许的资源为strings.xmlarrays.xml,因为这些资源是唯一需要翻译的资源。

但是,如果它们定位到API的特定版本,则styles.xml文件夹中可能会有dimens.xmlcolors.xmlvalues-<lang>。所以他们必须在values-de-v11