我在不同的"名称空间"(包、类等)中有几个函数,即:
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()
这一切都很好,除了一件事:com.example.a
中的两个a
方法。有没有办法告诉proguard在一个类中为不同的函数赋予不同的名称?
正确的解决方案是保留有关行号的调试信息:
-keepattributes SourceFile,LineNumberTable
-renamesourcefileattribute SourceFile
你也可以让ProGuard使用不同的名称:
-useuniqueclassmembernames
但这并不能避免预先存在的名称重载。