Kotlin 禁用元数据注释

标签 kotlin proguard obfuscation decompiling

有什么方法可以禁用 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/

相关文章:

kotlin - ItemViewModel 项目为空

android - cwac-loaderex 和 Proguard

java - ProGuard 中类路径前的感叹号有什么作用?

android - 上传图像,Firebase 显示 "User does not have permission to access this object",即使存储设置是公开的

lambda - 引用 Kotlin 中特定实例的方法

android - Proguard 测试后 "No tests were found"APK

javascript - 在 JavaScript 中混淆字符串文字和对象键?

google-play - 如何阅读Play商店崩溃报告,Proguard混淆

java - 混淆后将 JavaBean 与 JasperReports API : Getting java. lang.NoSuchMethodException 一起使用

java - 应用 BlurMaskFilter 时 TextView 被切断