2

我已經使用片段與片段活動進行通信,並且此片段活動通過其引用來處理片段中的單擊事件,如下所示。Bad Parcelable Exception

Bundle tempBundle = new Bundle(); 
tempBundle.putParcelable("Interface", (Parcelable) new ClickHandler()); 

class ClickHandler implements ItemClickListener, Parcelable 
{ 
} 

這工作完全正常,而我瀏覽的應用程序,該問題引起的,只有當我退出應用程序(通過按下HOME鍵),幾分鐘時間後我從最近使用的應用程序返回應用程序(介意立即返回到應用程序不會導致異常)。

沒有任何一個曾經面對過這樣的問題

回答

0

我也有這個問題,我花了相當多的時間去找出其中的錯誤發生。我所做的就是遵循question這個被接受的答案中的建議。

我做的第一步是搜索應用程序正在恢復與發生崩潰的類相關的savedInstanceState中的數據的實例。我簡單地設置了這些savedInstanceState軟件包的類加載器,如我提供的鏈接所建議的。但它第一次沒有工作。崩潰仍然發生,但它已更改其錯誤日誌堆棧跟蹤,以便我的代碼中沒有指出任何行。然後,在我的自定義parcelable對象中查找可能的空值,並將它們設置爲非空值。如果你在你的代碼的某些地方檢查null,這可能是一件很痛苦的事情。你只需要咬牙切齒,因爲顯然,Android不喜歡可分區的空值。

做完這兩個後,它仍然不適合我。所以我看了更遠,我發現我實際上是從一個適配器中的一個包中恢復實例。一些適配器可以這樣做,例如FragmentStatePagerAdapter。我只是簡單地設置了這個包的類加載器,然後爲我解決了問題。