Skip to content

Commit 614b2c5

Browse files
runningcodeclaude
andcommitted
refactor: Remove unnecessary sentry-android-core dependency and use direct instantiation
- Remove sentry-android-core dependency from distribution module (only needs sentry module) - Add distribution as compileOnly dependency in sentry-android-core - Use direct DistributionIntegration instantiation instead of reflection - Eliminates circular dependency and follows same pattern as other integrations The distribution module only needs Integration/IScopes/SentryOptions from core sentry, not anything from sentry-android-core, making the architecture cleaner. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 9b0cd9f commit 614b2c5

File tree

3 files changed

+3
-16
lines changed

3 files changed

+3
-16
lines changed

sentry-android-core/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ dependencies {
7676
compileOnly(projects.sentryAndroidFragment)
7777
compileOnly(projects.sentryAndroidTimber)
7878
compileOnly(projects.sentryAndroidReplay)
79+
compileOnly(projects.sentryAndroidDistribution)
7980
compileOnly(projects.sentryCompose)
8081

8182
// lifecycle processor, session tracking

sentry-android-core/src/main/java/io/sentry/android/core/AndroidOptionsInitializer.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import io.sentry.android.core.internal.util.SentryFrameMetricsCollector;
3434
import io.sentry.android.core.performance.AppStartMetrics;
3535
import io.sentry.android.fragment.FragmentLifecycleIntegration;
36+
import io.sentry.android.distribution.internal.DistributionIntegration;
3637
import io.sentry.android.replay.DefaultReplayBreadcrumbConverter;
3738
import io.sentry.android.replay.ReplayIntegration;
3839
import io.sentry.android.timber.SentryTimberIntegration;
@@ -393,21 +394,7 @@ static void installDefaultIntegrations(
393394
options.setReplayController(replay);
394395
}
395396
if (isDistributionAvailable) {
396-
final Class<?> distributionIntegrationClass =
397-
loadClass.loadClass(
398-
"io.sentry.android.distribution.internal.DistributionIntegration",
399-
options.getLogger());
400-
if (distributionIntegrationClass != null) {
401-
try {
402-
options.addIntegration(
403-
(io.sentry.Integration)
404-
distributionIntegrationClass.getDeclaredConstructor().newInstance());
405-
} catch (Exception e) {
406-
options
407-
.getLogger()
408-
.log(SentryLevel.ERROR, "Failed to instantiate DistributionIntegration", e);
409-
}
410-
}
397+
options.addIntegration(new DistributionIntegration());
411398
}
412399
options
413400
.getFeedbackOptions()

sentry-android-distribution/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,5 @@ androidComponents.beforeVariants {
2525

2626
dependencies {
2727
implementation(projects.sentry)
28-
implementation(projects.sentryAndroidCore)
2928
implementation(kotlin(Config.kotlinStdLib, Config.kotlinStdLibVersionAndroid))
3029
}

0 commit comments

Comments
 (0)