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

使用Jetpack Compose的clickable修饰符时出现IR lowering后端错误如何解决?

问题原因

这个错误是Kotlin版本与Jetpack Compose版本不兼容导致的已知编译器问题,你当前使用的Kotlin 1.5.30和Compose 1.0.2没有官方适配,在处理带lambda的Compose Modifier参数时会触发IR lowering阶段的内部异常。

解决方案

  • 方案1(最稳定):对齐官方兼容版本,将Kotlin版本从1.5.30降到1.5.21,Compose版本保持1.0.2不变,清理项目缓存后重新构建即可。
    Jetpack Compose每个稳定版本都有严格匹配的Kotlin版本要求,1.0.x系列对应的兼容Kotlin版本就是1.5.21,版本对齐后不会出现这类编译异常。
  • 方案2(保留高版本Kotlin):将Compose版本升级到1.1.0-alpha03及以上,该版本开始支持Kotlin 1.5.30,但注意alpha阶段版本可能存在其他API不稳定的问题。
  • 临时规避方案:如果暂时不想调整依赖版本,可以将clickable的onClick lambda逻辑提前提取为独立变量,规避编译器异常,修改后的代码示例如下:
// 提前定义点击切换逻辑
val toggleCheck = { onCheckedChange(!checked) }
Surface(
    modifier = Modifier
        .clickable(
            enabled = enabled,
            interactionSource = interactionSource,
            indication = rememberRipple(),
            role = Role.Checkbox,
            onClick = toggleCheck
        )
        .then(modifier),
) {
    Row {
        Checkbox(checked = checked, onCheckedChange = {}, colors = colors)
        Text(text = text ?: "")
    }
}

内容的提问来源于stack exchange,提问作者René Jörg Spies

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:21:02