diff --git a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java index 4f792521ac..5151db7369 100644 --- a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java +++ b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java @@ -362,6 +362,19 @@ static void updateWithReactDefaults( * applied after the configureOptions callback during manual native initialization. */ static void updateWithReactFinals(@NotNull SentryAndroidOptions options) { + if (!BuildConfig.VERSION_NAME.equals(RNSentryVersion.EXPECTED_ANDROID_SDK_VERSION)) { + options + .getLogger() + .log( + SentryLevel.WARNING, + "sentry-android resolved to %s, but @sentry/react-native expects %s. " + + "This may cause crashes at startup. " + + "If you use the Sentry Android Gradle Plugin, disable autoInstallation: " + + "https://docs.sentry.io/platforms/react-native/manual-setup/manual-setup/", + BuildConfig.VERSION_NAME, + RNSentryVersion.EXPECTED_ANDROID_SDK_VERSION); + } + BeforeSendCallback userBeforeSend = options.getBeforeSend(); options.setBeforeSend( (event, hint) -> { diff --git a/packages/core/android/src/main/java/io/sentry/react/RNSentryVersion.java b/packages/core/android/src/main/java/io/sentry/react/RNSentryVersion.java index 64f76ccc08..d82ec157d3 100644 --- a/packages/core/android/src/main/java/io/sentry/react/RNSentryVersion.java +++ b/packages/core/android/src/main/java/io/sentry/react/RNSentryVersion.java @@ -6,4 +6,5 @@ class RNSentryVersion { static final String NATIVE_SDK_NAME = "sentry.native.android.react-native"; static final String ANDROID_SDK_NAME = "sentry.java.android.react-native"; static final String REACT_NATIVE_SDK_NAME = "sentry.javascript.react-native"; + static final String EXPECTED_ANDROID_SDK_VERSION = "8.41.0"; } diff --git a/scripts/update-android.sh b/scripts/update-android.sh index efbd17d43f..aa2f27e3e6 100755 --- a/scripts/update-android.sh +++ b/scripts/update-android.sh @@ -33,6 +33,12 @@ set-version) expoHandlerContent=$(echo "$expoHandlerContent" | sed -E "s/(io\.sentry:sentry-android:)([0-9\.]+)/\1$2/g") echo "$expoHandlerContent" >$expoHandlerFile + # Update expected version constant in RNSentryVersion.java + versionFile='src/main/java/io/sentry/react/RNSentryVersion.java' + versionContent=$(cat $versionFile) + versionContent=$(echo "$versionContent" | sed -E "s/(EXPECTED_ANDROID_SDK_VERSION = \")([0-9\.]+)/\1$2/") + echo "$versionContent" >$versionFile + # Update replay-stubs to match cd $ORIGINAL_DIR ./update-android-stubs.sh set-version $2