有什么方法可以禁用 Kotlin 元数据或只是混淆它们吗?它是在编译期间添加的。 整个代码被很好地混淆了,但名为“kotlin-reflect.jar”的 Kotlin 库留下了方法细节,如类名、方法和参数类型。
@Metadata(mv = {1, 1, 13}, bv = {1, 0, 3}, k = 1, d1 = {"\000\022\n\002\030\002\n\002\030\002\n\000\n\002\020\016\n\002\b\002\030\0002\0020\001B\r\022\006\020\002\032\0020\003?\006\002\020\004R\016\020\002\032\0020\003X?\004?\006\002\n\000�\006\005"}, d2 = {"Lcom/test/SomeException;", "Lcom/test/SomeException;", "errorMessage", "", "(Ljava/lang/String;)V", "build"}) public final class SomeException extends Exception { public SomeException(@NotNull String paramString) { super(paramString); this.errorMessage = paramString; } private final String errorMessage; }
最佳答案
我创建了“unmeta”,这是一个 Android Gradle 插件,它删除了发布版本的所有 Kotlin @Metadata
和 @DebugMetadata
注释。
您可以在这里找到它:https://github.com/oliver-jonas/unmeta
它使用ASM,直接对编译后的字节码进行操作。
关于Kotlin 禁用元数据注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56532415/