0
点赞
收藏
分享

微信扫一扫

lateinit property mCustomListDialog has not been initialized

爪哇驿站 2022-05-05 阅读 82

问题: 

 kotlin.UninitializedPropertyAccessException: lateinit property mCustomListDialog has not been initialized
        at com.example.mykotlin1.AddUpdateDishActivity.selectedListItem(AddUpdateDishActivity.kt:249)
        at com.example.mykotlin1.adapters.CustomListItemAdapter.onBindViewHolder$lambda-0(CustomListItemAdapter.kt:30)
        at com.example.mykotlin1.adapters.CustomListItemAdapter.$r8$lambda$jZJdJvCwr8ZMD2lZuYRXxbKE26s(Unknown Source:0)
        at com.example.mykotlin1.adapters.CustomListItemAdapter$$ExternalSyntheticLambda0.onClick(Unknown Source:4)
        at android.view.View.performClick(View.java:7448)
        at android.view.View.performClickInternal(View.java:7425)
        at android.view.View.access$3600(View.java:810)
        at android.view.View$PerformClick.run(View.java:28305)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)

原因:

1、未初始化

2、关闭该对象,或对象为null后再次调用

3、在赋值时前面添加var修饰符

解决办法:

定义该成员变量

 private lateinit var mCustomListDialog: Dialog

1、初始化:

 mCustomListDialog =  Dialog(this)

 注:如果初始化时使用了var定义变量,则会报错,如如下的代码会报错

 var mCustomListDialog =  Dialog(this)

2、检查代码看是否重复调用,即当该对象已经不存在,已为null,但是还是调用

如第一次调用该代码不会报错

  mCustomListDialog.dismiss()

调用该对象一次,如果再次调用如下代码,则会报错

  mCustomListDialog.dismiss()
举报

相关推荐

0 条评论