Closed. This question needs debugging details。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

在10个月前关闭。



Improve this question




我有一个正在使用的DialogFragment子类,在关闭它时会崩溃。它并非每次都会发生,而且我似乎无法找到一种模式。崩溃发生在重写的onDismiss()函数内部。
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter dialog
at com.foo.MyDialogFragment.onDismiss(Unknown Source:2)

这是DialogInterface参数,它发生在我的任何代码运行之前,因此我无法采取任何措施来阻止它。我无法使dialog参数为可空,因为这会破坏DialogFragment的约定,并且无法编译。

知道是什么原因造成的,更重要的是,我该怎么办?看来这永远都不应该发生,但我在这里。

最佳答案

因此,您将DialogFragment子类化了吗?

然后,您应该只能够覆盖onDismiss,例如仅调用
对话框不为null时,super.onDismiss()

您还可以覆盖onDismiss和Log来查看何时确切调用它

这也可能起作用:

@Override
public void dismiss()
{
    if (getFragmentManager() != null) super.dismiss();
}

Source

07-28 03:47