web-dev-qa-db-ja.com

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() {


    }


}

そして初期化は:

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

助けてください

15
omer tamir

override fun onCreate(savedInstanceState: Bundle) {

savedInstanceStatenullである可能性があるため、タイプはBundle?である必要があります。

パラメータがnullでないことを指定すると、kotlinはすべての場合にチェックを生成します。これには、Javaインターフェースを実装する場合も含まれるため、null許容パラメーターをnull以外にすることに注意する必要があります。

28
Kiskae

また、エラーが発生しました。タイプBundle"Bundle?"に変更しました。その後、問題なく動作しました。 Kotlinでは、変数/パラメーターがnullかどうかを指定する必要があります。

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