質問

I have several function in different "namespaces" (packages, classes or so) i.e.:

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

After obfuscation, with my current settings, I'm getting sth like:

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

It is all good except one thing: two a methods in com.example.a. Is there any way to tell proguard to give different names to different function inside one class?

役に立ちましたか?

解決

The proper solution is to preserve debug information about line numbers:

-keepattributes SourceFile,LineNumberTable
-renamesourcefileattribute SourceFile

You could also let ProGuard use different names:

-useuniqueclassmembernames

but that doesn't avoid preexisting name overloading.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top