Kotlin禁用元数据注释

时间:2019-06-10 19:26:25

标签: 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”})   公共最终类SomeException扩展了Exception {     公共SomeException(@NotNull String paramString){super(paramString); this.errorMessage = paramString; }     私有最终String errorMessage;   }

1 个答案:

答案 0 :(得分:0)

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

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

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