2015-11-20 102 views
0

這是有史以來最奇怪的事情。Android FragmentManagerImpl.saveFragmentBasicState崩潰

我有一個Android應用程序,在我的3個測試設備上工作正常,直到昨天。我知道我沒有改變任何可能導致我現在看到的事情的事實。

但是,

每次我在三星Galaxy Tab型號GT-P5100運行它獲取這個活動它一貫崩潰。有了;

java.lang.NullPointerException 
at android.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1542) 
at android.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1572) 
at android.app.Activity.onSaveInstanceState(Activity.java:1164) 
at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:522) 
at android.app.Activity.performSaveInstanceState(Activity.java:1113) 
at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1189) 
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:2807) 
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:2865) 
at android.app.ActivityThread.access$900(ActivityThread.java:128) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1178) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4514) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
at dalvik.system.NativeStart.main(Native Method) 

奇怪的是,無論我在活動上做什麼,它都會發生。無論我點擊應用程序「向上」按鈕,工具欄菜單,選擇列表中的某些東西,觸摸屏幕上的隨機地點e.t.c.

stacktrace顯示我的代碼沒有一行,也沒有我設置的中斷點,即使在onSaveInstanceState被擊中。我在幾個地方看到過類似的問題,其中包括hereherehere,但沒有一個能夠幫上太大忙,特別是看到這個確切的設備在昨天運行正常。

我正在運行v13支持庫修訂版本23.1.1,這是最新的。該平板電腦正在運行Android 4.0.3。

我的其他測試設備都是Android 4.2以上的三星手機,它們都運行得很好。

任何幫助將不勝感激。謝謝!

+0

你有沒有找到新的東西?我一直在努力解決這個問題,它似乎是最隨機的錯誤。 – zakelfassi

+0

看到我的答案。我很想知道你們是否會成爲同樣的問題。 –

+0

不幸的不是。仍然試圖在這裏重現它... – zakelfassi

回答

1

那麼,我一直在尋找它沒有的問題。問題不在於我的活動開始,而是我的離開。事情發生的恰恰就是在切換之後足夠長時間的碰撞發生,似乎是在新活動中隨機發生的。談論迷信!

那麼的問題?

我還是不明白,但我發現前面的活動只是在onSaveInstanceState()方法上拋出一個NPE,而不是其他的。所以我只是把實現放在try-catch塊中,我很樂意去。

我不知道爲什麼這個問題突然發生,因爲它並沒有很長時間。