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

如何缩短Kotlin编译输出的文件名?

缩短Kotlin编译生成的长文件名的可行方法
  • 使用ProGuard/R8混淆优化
    这是最省心的方案,Android和JVM项目都适用。开启混淆后,工具会自动将非公开的内部类、匿名类的长名称替换成a、b这类短标识符,直接解决文件名过长问题。
    以Android项目的build.gradle.kts为例,配置方式如下:

    android {
        buildTypes {
            release {
                isMinifyEnabled = true
                proguardFiles(
                    getDefaultProguardFile("proguard-android-optimize.txt"),
                    "proguard-rules.pro"
                )
            }
        }
    }
    

    注意要在proguard-rules.pro中保留对外暴露的类、方法,避免影响功能,比如:

    -keep public class com.yourproject.publicapi.** { *; }
    
  • 自定义Kotlin编译器插件
    如果需要精准控制(比如只缩短特定类的名称,不想全量混淆),可以开发自定义编译器插件。通过实现Kotlin编译流程里的ClassBuilderFactory扩展点,在生成字节码阶段拦截并修改类名——比如把过长的自动生成名换成哈希缩写或序列编号。不过这个方案需要熟悉Kotlin编译原理,开发成本较高。

  • 重构代码从源头减少长名称
    从代码写法上避免生成过长文件名:

    • 把复杂的内部类抽成独立的顶层类,手动指定简洁类名;
    • 不要在lambda表达式中嵌套过多逻辑,将逻辑提取为命名函数,这样编译器生成的类名会基于函数名,而非自动生成的长标识;
    • 嵌套类尽量使用简洁命名,去掉冗余的描述性前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:47:04