ProGuard & DexGuard

Learn about using the Sentry Gradle Plugin or sentry-cli to upload ProGuard/R8 and DexGuard mappings to Sentry.

If you want to see de-obfuscated stack traces, you'll need to use ProGuard with Sentry. To do so, upload the ProGuard mapping files by either the recommended method of using our Gradle integration or manually by using sentry-cli.

It works the same either way. A (random) UUID will be or has to be generated and placed into the AndroidManifest.xml. The same UUID has to be used to upload the mapping file(s). In case a crash happens in the app, the Sentry Android SDK will send the UUID along with the stack trace to the Sentry server instance. Sentry will then de-obfuscate the stack trace by searching for the associated mapping file with the same UUID.

If Source Context is enabled, Sentry can show snippets of code (source context) around the location of stack frames, which helps to quickly pinpoint problematic code.

Support for Guardsquare's ProGuard and DexGuard was added in version 3.0.0 of the Sentry Android Gradle Plugin.

The Android SDK ships with ProGuard rules automatically defined; no further configuration is needed.

If you have an deobfuscated build, the Android SDK will automatically set all frames coming from the app as in-app, based on the applicationId/packageName. This is not possible on the client side for obfuscated builds. However, you can define server-side rules for identifying the in-app frames, for example:

stack.module:com.mycompany.** +app

For more information see StackTrace Rules.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").