kongzue / DialogX

💬 DialogX dialog box component library, easy to use, more customizable, more scalable, easy to achieve a variety of dialog boxes. DialogX对话框组件库,更加方便易用,可自定义程度更高,扩展性更强,轻松实现各种对话框、菜单和提示效果,更有Material You、iOS、MIUI等主题扩展可选
Apache License 2.0
2.08k stars 217 forks source link

【BUG反馈】 DialogFragmentImpl没有默认的空参数构造方法,数据恢复时反射可能导致崩溃 #388

Closed moguqxiong closed 1 year ago

moguqxiong commented 1 year ago

问题描述

在firebase中接收到的崩溃信息,数据恢复时fragment反射会调用空的构造函数,后来查看源码发现DialogFragmentImpl继承DialogFragment确实没有空参数的构造方法,应该是有可能导致崩溃。

DialogX 版本

0.0.49.beta16

设备信息

Moto E20 android 11

是否在 Demo 中能复现此问题?

问题截图/视频

截屏/视频

错误日志

Caused by androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.kongzue.dialogx.impl.DialogFragmentImpl: could not find Fragment constructor
       at androidx.fragment.app.Fragment.instantiate(Fragment.java:628)
       at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)
       at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:483)
       at androidx.fragment.app.FragmentStateManager.<init>(FragmentStateManager.java:85)
       at androidx.fragment.app.FragmentManager.restoreSaveState(FragmentManager.java:2728)
       at androidx.fragment.app.FragmentController.restoreSaveState(FragmentController.java:198)
       at androidx.fragment.app.FragmentActivity$2.onContextAvailable(FragmentActivity.java:149)
       at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99)
       at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:362)
       at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:273)
kongzue commented 1 year ago

会在下一个测试版本添加

kongzue commented 1 year ago

请尝试更新至 0.0.49.beta19测试版更新