Kotlin 禁用元数据注释



有没有办法禁用 Kotlin 元数据或只是混淆它们?它是在编译期间添加的。整个代码被很好地混淆了,但名为"kotlin-reflect.jar"的 Kotlin 库留下了方法详细信息,如类名、方法和带有类型的参数。

@Metadata(mv = {1, 1

, 13}, bv = {1, 0, 3}, k = 1, d1 = {"\000\022\02\030\002\02\030\002\00\02\020\016\02\b\002\030\0002\0020\001B\r\022\006\020\002\0020\003?\006\002\020\004R\016\020\002\032\0020\003X?\004?\006\002\00 \006\005"}, d2 = {"Lcom/test/SomeException;", "Lcom/test/SomeException;", "errorMessage", ", "(Ljava/lang/String;(V", "build"}( 公共最终类 SomeException 扩展 Exception { public SomeException(@NotNull String paramString( { super(paramString(; this.errorMessage = paramString; } 私有最终字符串错误消息; }

我创建了"unmeta",这是一个Android Gradle插件,可以删除所有Kotlin @Metadata,并为发布版本@DebugMetadata注释。

你可以在这里找到它:https://github.com/oliver-jonas/unmeta

它使用 ASM 并直接对编译的字节码进行操作。

最新更新