You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin使用runOnUiThread调用java.lang.Runnable出现lang未识别报错怎么办

报错原因及解决方案
  • 核心触发原因:Kotlin 对java.lang包下的通用类做了隐式导入适配,你显式写全java.lang.Runnable属于冗余写法,若项目中存在自定义的java包、lang类命名冲突,就会触发lang无法识别的报错。同时 Kotlin 原生支持 SAM 转换语法,根本不需要显式声明 Runnable 类。

正确实现写法

直接使用 Kotlin 简化语法即可,不需要加java.lang前缀:

this@MainActivity.runOnUiThread {
    // 此处写入要执行的UI操作逻辑
}

如果有特殊场景需要显式声明 Runnable,直接写类名即可:

this@MainActivity.runOnUiThread(Runnable {
    // 此处写入要执行的UI操作逻辑
})

异常排查方案

如果修改写法后仍有报错,执行以下操作排查:

  • 检查项目代码中是否存在自定义包名包含java/lang、或者自定义类命名为Runnable/lang的情况,这类命名冲突会导致编译器识别异常
  • 清理IDE缓存:在Android Studio中依次点击File -> Invalidate Caches...,勾选对应清理选项后重启IDE即可

内容的提问来源于stack exchange,提问作者Laba Diena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 12:03:04