混淆后的一个类中的函数名称

时间:2014-04-28 11:03:22

标签: java android proguard

我在不同的"命名空间中有几个功能" (包裹,类别等),即:

com.example.class1.foo1()
com.example.class1.foo2(string);
com.example.class1.foo3();
com.example.sth.class1.foo1();
com.example.sth.class2.foo1();

经过模糊处理后,使用我当前的设置,我得到了类似的信息:

com.example.a.a()
com.example.a.a(string) 
com.example.a.b()
com.example.sth.a.a()
com.example.sth.b.a()

除了一件事之外,一切都很好:a中有两个com.example.a方法。有没有办法告诉proguard给一个类中的不同函数赋予不同的名称?

1 个答案:

答案 0 :(得分:0)

正确的解决方案是保留有关行号的调试信息:

-keepattributes SourceFile,LineNumberTable
-renamesourcefileattribute SourceFile

您也可以让ProGuard使用不同的名称:

-useuniqueclassmembernames

但这并不能避免预先存在的名称重载。