Skip to content

Releases: getsentry/sentry-java

8.44.1

19 Jun 13:49

Choose a tag to compare

Fixes

  • Fix FirstDrawDoneListener leaking an OnGlobalLayoutListener per registration (#5567)

Features

  • Add experimental SentrySQLiteDriver to sentry-android-sqlite for instrumenting androidx.sqlite.SQLiteDriver (#5563)
    • To use it, pass SQLiteDriver to SentrySQLiteDriver.create(...)
    • Requires androidx.sqlite:sqlite (2.5.0+) on runtime classpath (typically provided by Room or SQLDelight)

Dependencies

8.44.0

17 Jun 16:05

Choose a tag to compare

Features

  • Add enableStandaloneAppStartTracing option to send app start as a standalone transaction instead of attaching it as a child span of the first activity transaction (#5342)
    • Disabled by default; opt in via options.isEnableStandaloneAppStartTracing = true or manifest meta-data io.sentry.standalone-app-start-tracing.enable
    • Emits a transaction named App Start with op app.start, carrying the existing app start measurements and phase spans (process.load, contentprovider.load, application.load, activity lifecycle spans) as direct children of the root
    • The standalone transaction shares the same traceId as the first ui.load activity transaction so they remain linked in the trace view
    • Also covers non-activity starts (broadcast receivers, services, content providers)

Improvements

  • Reduce boxing to improve performance (#5523, #5527, #5551)
  • Replace Date with a unix timestamp in SentryNanotimeDate to improve performance (#5550)
    • SentryNanotimeDate is now marked @ApiStatus.Internal. A new (long unixDateMillis, long nanos) constructor was added, where unixDateMillis is milliseconds since the epoch. The existing (Date, long) constructor is retained but deprecated.

Dependencies

Fixes

  • Fix attachments being duplicated on native events that carry scope attachments (#5548)
  • Fix performance collector scheduling many tasks in a row (#5524)

8.43.2

10 Jun 17:46

Choose a tag to compare

Improvements

  • Improve SDK init performance by replacing java.net.URI with custom string parsing for DSN (#5448)
  • Remove unnecessary boxing to improve performance (#5520)

Fixes

  • Session Replay: Fix VerifyError in Compose masking under DexGuard/R8 obfuscation (#5507)
  • Session Replay: Fix Compose view masking not working on obfuscated/minified builds (#5503)

8.43.1

03 Jun 21:34

Choose a tag to compare

Fixes

  • Session Replay: Fix replay recording freezing on screens with continuous animations (#5489)
  • Session Replay: Populate trace_ids in replay events to enable searching replays by trace ID (#5473)

8.43.0

27 May 16:01

Choose a tag to compare

Features

  • Session Replay: Add ReplayFrameObserver for observing captured replay frames (#5386)

    SentryAndroid.init(context) { options ->
      options.sessionReplay.frameObserver =
        SentryReplayOptions.ReplayFrameObserver { hint, frameTimestamp, screenName ->
          val bitmap = hint.getAs(TypeCheckHint.REPLAY_FRAME_BITMAP, Bitmap::class.java)
          if (bitmap != null) {
            try {
              // Process the masked replay frame
              myAnalyzer.processFrame(bitmap, frameTimestamp, screenName)
            } finally {
              bitmap.recycle()
            }
          }
        }
    }
  • Parse ART memory and garbage collector info from ANR tombstones into ART context (#5428)

8.42.0

20 May 13:11

Choose a tag to compare

Features

  • Add option to attach raw tombstone protobuf on native crash events (#5446)
    • Enable via options.isAttachRawTombstone = true or manifest: <meta-data android:name="io.sentry.tombstone.attach-raw" android:value="true" />
  • Add API to clear feature flags from scopes (#5426)
  • Add support to configure reporting historical ANRs via AndroidManifest.xml using the io.sentry.anr.report-historical attribute (#5387)

Dependencies

8.41.0

06 May 22:16

Choose a tag to compare

Features

  • Session Replay: experimental support for capturing SurfaceView content (e.g. Unity, video players, maps) (#5333)
    • To enable, set options.sessionReplay.isCaptureSurfaceViews = true
    • Or via manifest: <meta-data android:name="io.sentry.session-replay.capture-surface-views" android:value="true" />
    • Warning: masking granularity is at the SurfaceView level only — the SDK cannot mask individual elements rendered inside the SurfaceView (e.g. native Unity UI, map labels, video frames). Only enable for SurfaceViews whose content is safe to record.
  • Add Sentry.feedback() API for show() and capture() (#5349)
    • Sentry.showUserFeedbackDialog() is deprecated in favor of Sentry.feedback().show()
    • Sentry.captureFeedback() is deprecated in favor of Sentry.feedback().capture()
    • Sentry.captureUserFeedback() and UserFeedback are deprecated in favor of Sentry.feedback().capture() with the new Feedback type
    • SentryUserFeedbackDialog is deprecated in favor of SentryUserFeedbackForm
    • All deprecated APIs will be removed in the next major version
  • Deprecate SentryUserFeedbackButton (View-based and Compose-based) (#5350)
    • It will be removed in the next major version
  • Add per-form shake-to-show support for SentryUserFeedbackForm (#5353)
    • Useful for enabling shake-to-report on specific screens instead of globally
    SentryUserFeedbackForm.Builder(activity)
      .configurator { it.isUseShakeGesture = true }
      .create()
  • Add support for Kafka (#5249)
    • You will need to add the sentry-kafka dependency and opt-in via the new option.
      • Set options.setEnableQueueTracing(true) on Sentry.init
      • Or set sentry.enable-queue-tracing=true in application.properties
    • For Spring Boot Kafka is auto instrumented and no further configuration is needed.
    • When using kafka-clients directly

Fixes

  • Fix soft input keyboard not being shown on the Feedback form (#5359)
  • Fix shake-to-report not triggering on some devices due to high acceleration threshold (#5366)
  • Fix feedback form retaining previous message when shown again via shake (#5366)
  • Avoid stack overflow when deserializing large flat JSON objects (#5361)

Dependencies

8.40.0

22 Apr 16:19

Choose a tag to compare

Fixes

  • Fix NoSuchMethodError for LayoutCoordinates.localBoundingBoxOf$default on Compose touch dispatch with AGP 8.13 and minSdk < 24 (#5302)
  • Fix reporting OkHttp's synthetic 504 "Unsatisfiable Request" responses as errors for CacheControl.FORCE_CACHE cache misses (#5299)
  • Make SentryGestureDetector thread-safe and recycle VelocityTracker per gesture (#5301)
  • Fix duplicate ui.click breadcrumbs when another Window.Callback wraps SentryWindowCallback (#5300)

Dependencies

8.39.1

17 Apr 07:40

Choose a tag to compare

Fixes

  • Fix JsonObjectReader and MapObjectReader hanging indefinitely when deserialization errors leave the reader in an inconsistent state (#5293)
    • Failed collection values are now skipped so parsing can continue
    • Skipped collection values emit WARNING logs
    • Unknown-key failures and unrecoverable recovery failures emit ERROR logs

8.39.0

16 Apr 14:10

Choose a tag to compare

Fixes

  • Fix ANR caused by GestureDetectorCompat Handler/MessageQueue lock contention in SentryWindowCallback (#5138)

Internal

  • Bump AGP version from v8.6.0 to v8.13.1 (#5063)

Dependencies