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

Kotlin 1.5/1.6版本含可空参数数据类抛出BackendException问题

异常触发原因

该编译错误是com.stustirling.redacted-gradle-plugin(数据类脱敏插件)旧版本与Kotlin 1.5+默认启用的IR编译器不兼容导致的。
Kotlin从1.5版本开始将IR后端作为默认编译实现,而旧版本的redacted插件在批量处理数据类自动生成的toString()方法时,修改IR语法树的逻辑存在缺陷,遇到包含可空参数、泛型参数的数据类时会破坏IR节点结构,导致编译器找不到toString()的方法体,最终抛出后端异常。该兼容问题在Kotlin 1.6版本上同样存在,属于插件版本适配问题,和业务代码写法无关。

解决方法

可根据需求选择以下任意一种方案:

  • 方案1:升级redacted插件版本
    将项目依赖的redacted gradle插件升级到1.3.0及以上版本,该版本已经完成Kotlin 1.5+ IR编译器的适配,升级后无需修改其他配置即可正常编译。
  • 方案2:临时关闭IR编译器(仅应急使用)
    在项目根目录的gradle.properties文件中添加配置kotlin.useIR=false,强制使用旧版后端编译即可解决报错。但Kotlin后续版本会完全移除旧后端实现,该方案仅可作为短期临时处理方案。
  • 方案3:关闭全量数据类脱敏配置
    如果你不需要对所有数据类自动脱敏,可将build.gradle中redacted配置块的redactAllDataClasses true改为false,仅给需要脱敏的类手动添加@Redacted注解,即可规避批量处理触发的IR异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:54:02