Kotlin自定义对话框指定为非null的参数

我得到这个错误:

引起:java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数savedInstanceState

当我试图在Kotlin中膨胀自定义对话框时,我得到了我在对话框中的super.onCreate行上面写的错误。

对话框代码是:

class Custom_Dialog_Exit_App(var activity: Activity)// TODO Auto-generated constructor stub : Dialog(activity, R.style.full_screen_dialog) { override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) requestWindowFeature(Window.FEATURE_NO_TITLE) setContentView(R.layout.custom_dialog_exit_app) activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT) initView() } fun initView() { initClicks() } fun initClicks() { } } 

和init是:

 val omer = Custom_Dialog_Exit_App(this@MainActivity) omer.show() 

请帮忙

override fun onCreate(savedInstanceState: Bundle) {

既然savedInstanceState可以为null那么types必须是Bundle?

当你指定参数不为null时,kotlin会在所有情况下生成一个检查。 这包括在实现一个Java接口的时候,所以你需要小心使可为空的参数非空。

我也遇到了错误,我把这个types的Bundle改成了"Bundle?" 然后它为我工作。 在Kotlin中,你必须指定variables/参数是否为空。

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) init() } 

改变这一行

  activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT) 

 if(activity.window != null) { activity.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT) } else { Log.e(TAG, "Window is null"); }