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

开启Proguard后运行时报kotlin.Any内置类未找到错误如何解决?

Proguard开启后出现kotlin.Any找不到崩溃的解决方案

这个问题核心是Kotlin反射依赖的内置类元数据被Proguard处理异常导致,即便配置了全局不混淆不压缩规则也可能触发,可按以下步骤排查修复:

  • 第一步:添加Kotlin专属Proguard保留规则,补上你现有规则缺失的反射元数据、核心内置类保留逻辑,规则如下:
# 保留Kotlin全量基础类与反射实现
-keep class kotlin.** { *; }
-keep interface kotlin.** { *; }
-dontwarn kotlin.**

# 明确保留Kotlin核心内置类
-keep class kotlin.Any { *; }
-keep class kotlin.Unit { *; }
-keep class kotlin.Nothing { *; }
-keep class kotlin.coroutines.Continuation { *; }
-keep class kotlin.reflect.jvm.internal.** { *; }

# 保留Kotlin反射依赖的Metadata注解
-keepattributes RuntimeVisibleAnnotations, AnnotationDefault
-keep @interface kotlin.Metadata { *; }
  • 第二步:校验kotlin-reflect依赖版本与项目全局Kotlin版本完全一致,版本不匹配是高频触发原因。
  • 第三步:替换你现有存在兼容问题的全局保留规则,你当前使用的***通配符在部分Proguard版本中对系统内置类匹配存在漏洞,可将原有的类、接口、注解、枚举的keep规则统一替换为标准写法:
-keep class * { *; }
  • 第四步:在模块build.gradle的android配置块中添加packaging规则,避免Kotlin模块元数据被误删:
android {
    // 其他配置保持不变
    packagingOptions {
        pickFirst 'META-INF/*.kotlin_module'
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:03