From 37f7fbf480e5216b26e9a184a6b25ed7aaffcf33 Mon Sep 17 00:00:00 2001 From: Manoel Aranda Neto Date: Wed, 15 Apr 2020 14:14:26 +0200 Subject: [PATCH 1/2] check for androidx availability on runtime --- .../core/SessionTrackingIntegration.java | 19 +++++++++++++++---- sentry-sample/build.gradle.kts | 5 +++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/SessionTrackingIntegration.java b/sentry-android-core/src/main/java/io/sentry/android/core/SessionTrackingIntegration.java index 33cb2c267..5a30df8c8 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/SessionTrackingIntegration.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/SessionTrackingIntegration.java @@ -31,10 +31,21 @@ public void register(final @NotNull IHub hub, final @NotNull SentryOptions optio options.isEnableSessionTracking()); if (options.isEnableSessionTracking()) { - watcher = new LifecycleWatcher(hub, options.getSessionTrackingIntervalMillis()); - ProcessLifecycleOwner.get().getLifecycle().addObserver(watcher); - - options.getLogger().log(SentryLevel.DEBUG, "SessionTrackingIntegration installed."); + try { + Class.forName("androidx.lifecycle.DefaultLifecycleObserver"); + Class.forName("androidx.lifecycle.ProcessLifecycleOwner"); + watcher = new LifecycleWatcher(hub, options.getSessionTrackingIntervalMillis()); + ProcessLifecycleOwner.get().getLifecycle().addObserver(watcher); + + options.getLogger().log(SentryLevel.DEBUG, "SessionTrackingIntegration installed."); + } catch (ClassNotFoundException e) { + options + .getLogger() + .log( + SentryLevel.INFO, + "androidx.lifecycle is not available, SessionTrackingIntegration won't be installed", + e); + } } } diff --git a/sentry-sample/build.gradle.kts b/sentry-sample/build.gradle.kts index 3b969469a..db4ae244e 100644 --- a/sentry-sample/build.gradle.kts +++ b/sentry-sample/build.gradle.kts @@ -70,6 +70,11 @@ dependencies { implementation(project(":sentry-android")) +// how to exclude androidx if release health feature is disabled +// implementation(project(":sentry-android")) { +// exclude(group = "androidx.lifecycle") +// } + implementation(Config.Libs.appCompat) // debugging purpose From a41d7518aa25d2e399c962e9e4f645f043745451 Mon Sep 17 00:00:00 2001 From: Manoel Aranda Neto Date: Wed, 15 Apr 2020 14:24:30 +0200 Subject: [PATCH 2/2] full exclude sample --- sentry-sample/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sentry-sample/build.gradle.kts b/sentry-sample/build.gradle.kts index db4ae244e..5815970bd 100644 --- a/sentry-sample/build.gradle.kts +++ b/sentry-sample/build.gradle.kts @@ -72,7 +72,8 @@ dependencies { // how to exclude androidx if release health feature is disabled // implementation(project(":sentry-android")) { -// exclude(group = "androidx.lifecycle") +// exclude(group = "androidx.lifecycle", module = "lifecycle-process") +// exclude(group = "androidx.lifecycle", module = "lifecycle-common-java8") // } implementation(Config.Libs.appCompat)