如何防止 ProGuard 混淆方法参数名称

时间:2021-05-11 14:27:12

标签: kotlin proguard

对于给定的类:

class KeepMe(val keepThisArgument: Int) {
    fun keepMethod(keepThisArgument: Int) {
        println(keepThisArgument)
    }
}

和 proguard 配置:

-keep class com.KeepMe { *; }

以下代码由 proguard 生成:

public final class KeepMe {
  private final int keepThisArgument;
  
  public final void keepMethod(int paramInt) {
    System.out.println(paramInt);
  }
  
  public final int getKeepThisArgument() {
    return this.keepThisArgument;
  }
  
  public KeepMe(int paramInt) {
    this.keepThisArgument = paramInt;
  }
}

构造函数和方法参数名称从“keepThisArgument”更改为“paramInt”。有没有办法让它不发生?我使用 net.sf.proguard gradle 插件,版本 6.2.2。

1 个答案:

答案 0 :(得分:0)

原来有单独的配置来保持所有类中的所有参数名称不被混淆:

    if (sessionStorage.getItem('status') != null))
//redirect to page
}
else{
    //show validation message
}