/sentry-java

A Sentry SDK for Java, Android and other JVM languages.

Primary LanguageJavaMIT LicenseMIT


Bad software is everywhere, and we're tired of it. Sentry is on a mission to help developers write better software faster, so we can get back to enjoying technology. If you want to join us Check out our open positions

Sentry SDK for Java and Android

GH Workflow codecov Discord Chat

Packages Bintray Maven Central Android API
sentry-android sentry-android Maven Central 16
sentry-android-core sentry-android-core Maven Central 14
sentry-android-ndk sentry-android-ndk Maven Central 16
sentry-android-timber sentry-android-timber Maven Central 14
sentry sentry Maven Central 14
sentry-servlet sentry-servlet Maven Central
sentry-spring-boot-starter sentry-spring-boot-starter Maven Central
sentry-spring sentry-spring Maven Central
sentry-logback sentry-logback Maven Central
sentry-log4j2 sentry-log4j2 Maven Central

Useful links and docs

Current Javadocs generated from source code.

Java SDK version 1.x can still be found here.

Migration page from sentry-android 1.x and 2.x to sentry-android 4.x.

Migration page from sentry 1.x to sentry 4.x.

Releases from sentry-android 2.x and its changelogs.

Sentry Android Gradle Plugin repo sits on another repo

Blog posts

New Android SDK How-to.

Adding Native support to our Android SDK.

Samples

Sample App. with Sentry Android SDK and Sentry Gradle Plugin.

Sample App. with Sentry Java SDK.

Sample for Development.

Development

This repository includes sentry-native as a git submodule. To build against sentry-native checked-out elsewhere in your file system, create a symlink sentry-android-ndk/sentry-native-local that points to your sentry-native directory. For example, if you had sentry-native checked-out in a sibling directory to this repo:

ln -s ../../sentry-native sentry-android-ndk/sentry-native-local

which will be picked up by gradle and used instead of the git submodule. This directory is also included in .gitignore not to be shown as pending changes.

Android: Note on multiple crash reporting SDKs

Installing multiple crash reporting SDKs isn't supported. They race each other on taking the signal handler (for native crashes) and it often results in only 1 of the SDKs capturing the error. This is also due to the limitations of what can run there (like allocating memory etc) and how long the app lives. This limitation also affects the Java layer, given that the operating system will kill the app before more than one SDK is able to process the crash and save the error to storage.

Sentry Self Hosted Compatibility

Since version 3.0.0 of this SDK, Sentry version >= v20.6.0 is required. This only applies to on-premise Sentry, if you are using sentry.io no action is needed.

Resources

  • Java Documentation
  • Android Documentation
  • Forum
  • Discord Chat
  • Stack Overflow
  • Code of Conduct
  • Twitter Follow