From c1b2ae03e7c2f49da2cde42a7f937e2c5e124d89 Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 2 Jul 2025 21:20:11 +0200 Subject: [PATCH 1/3] Update proguard rules --- flutter/android/proguard-rules.pro | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/flutter/android/proguard-rules.pro b/flutter/android/proguard-rules.pro index d64759b4c6..e1385f8d12 100644 --- a/flutter/android/proguard-rules.pro +++ b/flutter/android/proguard-rules.pro @@ -1,4 +1,12 @@ -keep class io.sentry.flutter.** { *; } +-keepclassmembers class io.sentry.flutter.** { *; } + +# Keep replay integration classes used by JNI +-keep class io.sentry.android.replay.** { *; } + +# Keep bitmap classes used by JNI +-keep class android.graphics.Bitmap { *; } +-keep class android.graphics.Bitmap$Config { *; } # To ensure that stack traces is unambiguous # https://developer.android.com/studio/build/shrink-code#decode-stack-trace From 81e9bf53b7c008b8c5e9a437189da612fa89ae8d Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Wed, 2 Jul 2025 21:43:03 +0200 Subject: [PATCH 2/3] Update --- flutter/android/proguard-rules.pro | 1 - flutter/lib/src/native/java/android_replay_recorder.dart | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/flutter/android/proguard-rules.pro b/flutter/android/proguard-rules.pro index e1385f8d12..b2adbf85f3 100644 --- a/flutter/android/proguard-rules.pro +++ b/flutter/android/proguard-rules.pro @@ -1,5 +1,4 @@ -keep class io.sentry.flutter.** { *; } --keepclassmembers class io.sentry.flutter.** { *; } # Keep replay integration classes used by JNI -keep class io.sentry.android.replay.** { *; } diff --git a/flutter/lib/src/native/java/android_replay_recorder.dart b/flutter/lib/src/native/java/android_replay_recorder.dart index b85ee9a00e..4a9253e83c 100644 --- a/flutter/lib/src/native/java/android_replay_recorder.dart +++ b/flutter/lib/src/native/java/android_replay_recorder.dart @@ -140,7 +140,7 @@ class _AndroidNativeReplayWorker { // Android Bitmap creation is a bit costly so we reuse it between captures. native.Bitmap? bitmap; - final _nativeReplay = native.SentryFlutterPlugin$Companion(null) + final _nativeReplay = native.SentryFlutterPlugin.Companion .privateSentryGetReplayIntegration()!; receivePort.listen((message) { From de58d7dfe0183a3f8b1dbb6ea41325293ad7c993 Mon Sep 17 00:00:00 2001 From: Giancarlo Buenaflor Date: Thu, 3 Jul 2025 15:04:20 +0200 Subject: [PATCH 3/3] Update CHANGELOG --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b890c67427..dc04f50b02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +### Unreleased + +### Fixes + +- Replay JNI usage with `SentryFlutterPlugin` ([#3036](https://github.com/getsentry/sentry-dart/pull/3036)) + ## 9.3.0 ### Breaking Change (Tooling)