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

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在一个类中为不同的函数赋予不同的名称?

最佳答案

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

-keepattributes SourceFile,LineNumberTable
-renamesourcefileattribute SourceFile


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

-useuniqueclassmembernames


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

07-28 02:16
查看更多