java.lang.RuntimeException:无法启动活动ComponentInfo {}:kotlin.KotlinNullPointerException

问题描述

我创建了一个对话框createWebHistory,并在myDialog活动中对其进行了初始化,尽管我使用了非空声明运算符Settings.kt
我想要做的是使用单选按钮(浅色或深色)更改应用程序的主题。这两个单选按钮位于对话框中,即themeRadioGroup(!!)是我要更改主题的活动,因此这就是为什么我要从myDialog访问单选组的原因。

Settings.kt 活动

Settings.kt

解决方法

!!是您 获取KotlinNullPointerException的唯一方法。异常表示您断言该项目为非null是错误的。在这种情况下,这意味着具有该ID的视图在您设置的对话框布局中不存在。

也许您要查找的视图位于活动布局中,在这种情况下,您应该调用this.findViewById而不是myDialog.findViewById

否则,请仔细检查对话框的布局以确保其存在。如果您有多个版本的布局用于不同的配置,请确保它们都有一个具有该ID的视图。

您可能想研究view binding,其目的是避免此类问题。