所以我在我的本地化應用程序爲不同的語言,開始與法國的過程中,所遇到的一個奇怪的問題。Android的 - getActionBar()setDisplayHomeAsUpEnabled()崩潰的應用程序,只在小屏幕法國
在創建一個活動,我稱之爲getActionBar().setDisplayHomeAsUpEnabled(true);
。使用英文和法文在我的Nexus 7上進行測試時,此工作正常,並且在使用默認(英文)資源時可以在我的Nexus 4上正常工作。但是,如果我嘗試在我的Nexus 4上用法語開始有問題的活動(即手機設置爲法語,但如果我嘗試強制將應用程序變爲法語也會出現問題,無論如何),應用程序崩潰,Eclipse告訴我有一個空指針異常。我確定問題是撥打setDisplayHomeAsUpEnabled()
。
傳遞false
代替true
也崩潰。調用getActionBar()
而不進行任何進一步調用不會使應用程序崩潰。該應用程序根據主 - 細節流設置(所以應用程序的核心是兩個活動 - 片段對,一個列表和一個細節),我認爲這是爲什麼Nexus 7版本可以正常工作,儘管Nexus 4版本崩潰。
我已經仔細檢查了我的values
和values-fr
文件夾,並且我確信values-fr
中沒有丟失或額外的資源。
任何線索,爲什麼這可能發生?
這裏是logcat的告訴我:
04-27 15:13:44.968: D/AndroidRuntime(4244): Shutting down VM
04-27 15:13:44.968: W/dalvikvm(4244): threadid=1: thread exiting with uncaught exception (group=0x41429930)
04-27 15:13:44.978: E/AndroidRuntime(4244): FATAL EXCEPTION: main
04-27 15:13:44.978: E/AndroidRuntime(4244): java.lang.RuntimeException: Unable to start activity ComponentInfo{ca.hachesoftware.soilbearingcapacity/ca.hachesoftware.soilbearingcapacity.ScreenDetailActivity}: java.lang.NullPointerException
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.os.Handler.dispatchMessage(Handler.java:99)
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.os.Looper.loop(Looper.java:137)
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.app.ActivityThread.main(ActivityThread.java:5041)
04-27 15:13:44.978: E/AndroidRuntime(4244): at java.lang.reflect.Method.invokeNative(Native Method)
04-27 15:13:44.978: E/AndroidRuntime(4244): at java.lang.reflect.Method.invoke(Method.java:511)
04-27 15:13:44.978: E/AndroidRuntime(4244): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-27 15:13:44.978: E/AndroidRuntime(4244): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-27 15:13:44.978: E/AndroidRuntime(4244): at dalvik.system.NativeStart.main(Native Method)
04-27 15:13:44.978: E/AndroidRuntime(4244): Caused by: java.lang.NullPointerException
04-27 15:13:44.978: E/AndroidRuntime(4244): at ca.hachesoftware.soilbearingcapacity.ScreenDetailActivity.onCreate(ScreenDetailActivity.java:34)
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.app.Activity.performCreate(Activity.java:5104)
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-27 15:13:44.978: E/AndroidRuntime(4244): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-27 15:13:44.978: E/AndroidRuntime(4244): ... 11 more
張貼堆棧跟蹤將有助於。 – CommonsWare 2013-04-27 19:27:59
在上面添加了日誌信息。 – GarrickW 2013-04-27 19:34:10
什麼是ScreenDetailActivity的第34行? – CommonsWare 2013-04-27 19:35:52