问题

发布于 11 天前  23 次阅读


这个错误指向 AgentDialog.kt:93,就是那句 statusText!!.setTextSize(...)。你的旧 Kotlin 编译器对 !! 或 ?. 操作符的静态分析有误,把它当成了“对 val 赋值”来误报。

解决办法:不用 !! 和 ?.,全部用显式判空再调用

把第 93 行附近的代码改成这样(其他类似地方也照此修改):

```kotlin
// 原代码(报错):
statusText!!.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 13f)

// 改为:
val st = statusText
if (st != null) {
    st.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 13f)
}
```

同样的,把文件里所有 statusText!!.xxx、stopButton!!.xxx、sendButton?.xxx 都改成这种写法,彻底避开编译器 bug。

改完就能编译通过。以后在这个环境下写代码,记住:避免 ?.、!!、by lazy、apply,用最原始的 if 判空和 setter 方法,就不会再踩坑。