To understand your stacktrace after obfuscation, read the section about how to decode an obfuscated stack trace. Additionally, if your code relies on predictable naming for your app’s methods and classes—when using reflection, for example, you should treat those signatures as entry points and specify keep rules for them, as described in the section about how to customize which code to keep.