FragmentDialog異常 InstantiationException

Buggly 統計出FragmentDialog 報錯

android.support.v4.app.Fragment$InstantiationException:   
Unable to instantiate fragment 省略:  
make sure class name exists, is public, and has an empty constructor that is  
public  

說FragmentDialog必須要有公開的無參構造器。

目測應該是初始化FragmentDialog的時候報錯。
除了我們自己代碼創建FragmentDialog之外,系統也會幫我們創建FragmentDialog。這也是FragmentDialog與Dialog的最大區別!

Default constructor.  Every fragment must have an
empty constructor, so it can be instantiated when restoring its
activity's state.  It is strongly recommended that subclasses do not
have other constructors with parameters, since these constructors
will not be called when the fragment is re-instantiated; instead,
arguments can be supplied by the caller with setArguments()
and later retrieved by the Fragment with getArguments().

所有的Fragment必須有無參的構造器,這樣在Activity恢復的時候,會去重新初始化Fragment。這個初始化操作,就是通過反射到無參構造器進行初始化的。

還有一點需要注意:FragmentDialog 傳參的時候,應該像Fragment一樣,通過setArguments()、getArguments() 進行傳參。

這也是出現Bug的原因之一。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,818評論 25 708
  • Fragment是什么? Fragment是Android3.0后引入的一個新的API,他出現的初衷是為了適應大屏...
    luoqiang108閱讀 425評論 0 1
  • 堂哥是2012年結的婚,那年他29歲。 29是周歲,依我們老家虛歲算已經30歲了。 30歲的年紀看起來也不算晚,但...
    張看簡書閱讀 266評論 0 3
  • 秋漸涼, 繁星兩三點, 月圓無所見; 南飛雁, 看盡人間事, 何處是故鄉? 落葉紛紛離家去, 細雨綿綿無絕期; 雖...
    滴緣閱讀 157評論 0 0
  • 今天不寫讀書分享,原因是假期對書籍的選擇有限,加之最近也沒有閱讀到什么很有營養讓人精力充沛很振奮人心的書籍...
    Julia的隨筆閱讀 241評論 0 0