Tried to use incremental obfuscation, but have the problem that it produces wrong method invocations if the same method signature is used in the obfuscated base jar and in a NOT obfuscated 3rd party library in the second processing step.
E.g. have a method "String getHelloWorld()" somewhere in the base jar, which is obfuscated to "a" in first processing step.
The second processing step uses a 3rd party library that also contains a method "String getHelloWorld()" in a completely unrelated class or interface.
Now the problem is that invocations to 3rd party method "String getHelloWorld()" are changed to "a", which result in NoSuchMethodError when running the program.
Tested with proguard 6.0.3 and 6.1beta2
I've attached a simple test case to reproduce the issue.
Thanks for your detailed report. Incremental obfuscation is a tricky problem that doesn't always have a solution. The current implementation mostly tries to solve the problem of obfuscating a code base that has changed slightly, preserving the original obfuscation mapping. This is a different use case, with an obfuscated library that is integrated in a new context. Omitting -useuniqueclassmembernames in the second obfuscation step may help.
I've changed the implementation slightly for the upcoming ProGuard 6.1 beta3. You can find the patch attached.