Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 告诉ProGuard混淆给定的方法,但不要';我不能改变它的名字_Java_Obfuscation_Proguard - Fatal编程技术网

Java 告诉ProGuard混淆给定的方法,但不要';我不能改变它的名字

Java 告诉ProGuard混淆给定的方法,但不要';我不能改变它的名字,java,obfuscation,proguard,Java,Obfuscation,Proguard,我有这样一种方法: public static void aBeautifulMethod(String userId) { int aNumber = 0; String something = userId; // .... } public static void aBeautifulMethod(String a) // name doesn't change! { int b = 0; String c = a; // .... ev

我有这样一种方法:

public static void aBeautifulMethod(String userId) 
{
    int aNumber = 0;
    String something = userId;
    // ....
}
public static void aBeautifulMethod(String a) // name doesn't change!
{
    int b = 0;
    String c = a;
    // .... everything is obfuscate inside
}
是否可以让Proguard像往常一样混淆它,但保留它的名称?结果应该是这样的:

public static void aBeautifulMethod(String userId) 
{
    int aNumber = 0;
    String something = userId;
    // ....
}
public static void aBeautifulMethod(String a) // name doesn't change!
{
    int b = 0;
    String c = a;
    // .... everything is obfuscate inside
}

请注意,我正在寻找将此规则应用于一组精确的方法的方法。谢谢大家!

保留选项适用于入口点,而不是代码,因此它符合您的描述:

-keep somepackage.SomeClass {
    public static void aBeautifulMethod(java.lang.String);
}
如果类名可能被混淆,则可以使用-keepclassmembers


您可以指定更多方法并使用各种通配符,如ProGuard手册中所述。

谢谢,实际上我已经通过执行类似操作解决了这个问题:“-keepclassmembernames”和代码上的注释。