1111import io .sentry .ILogger ;
1212import io .sentry .ISentryLifecycleToken ;
1313import io .sentry .ITransactionProfiler ;
14+ import io .sentry .NoOpCompositePerformanceCollector ;
1415import io .sentry .NoOpConnectionStatusProvider ;
1516import io .sentry .NoOpContinuousProfiler ;
1617import io .sentry .NoOpTransactionProfiler ;
3536import io .sentry .cache .PersistingScopeObserver ;
3637import io .sentry .compose .gestures .ComposeGestureTargetLocator ;
3738import io .sentry .compose .viewhierarchy .ComposeViewHierarchyExporter ;
39+ import io .sentry .internal .debugmeta .NoOpDebugMetaLoader ;
3840import io .sentry .internal .gestures .GestureTargetLocator ;
41+ import io .sentry .internal .modules .NoOpModulesLoader ;
3942import io .sentry .internal .viewhierarchy .ViewHierarchyExporter ;
4043import io .sentry .transport .CurrentDateProvider ;
4144import io .sentry .transport .NoOpEnvelopeCache ;
45+ import io .sentry .transport .NoOpTransportGate ;
4246import io .sentry .util .LazyEvaluator ;
4347import io .sentry .util .Objects ;
48+ import io .sentry .util .thread .NoOpThreadChecker ;
4449import java .io .File ;
4550import java .util .ArrayList ;
4651import java .util .List ;
@@ -163,7 +168,9 @@ static void initializeIntegrationsAndProcessors(
163168 options .addEventProcessor (new ScreenshotEventProcessor (options , buildInfoProvider ));
164169 options .addEventProcessor (new ViewHierarchyEventProcessor (options ));
165170 options .addEventProcessor (new AnrV2EventProcessor (context , options , buildInfoProvider ));
166- options .setTransportGate (new AndroidTransportGate (options ));
171+ if (options .getTransportGate () instanceof NoOpTransportGate ) {
172+ options .setTransportGate (new AndroidTransportGate (options ));
173+ }
167174
168175 // Check if the profiler was already instantiated in the app start.
169176 // We use the Android profiler, that uses a global start/stop api, so we need to preserve the
@@ -185,8 +192,12 @@ static void initializeIntegrationsAndProcessors(
185192 appStartTransactionProfiler ,
186193 appStartContinuousProfiler );
187194
188- options .setModulesLoader (new AssetsModulesLoader (context , options .getLogger ()));
189- options .setDebugMetaLoader (new AssetsDebugMetaLoader (context , options .getLogger ()));
195+ if (options .getModulesLoader () instanceof NoOpModulesLoader ) {
196+ options .setModulesLoader (new AssetsModulesLoader (context , options .getLogger ()));
197+ }
198+ if (options .getDebugMetaLoader () instanceof NoOpDebugMetaLoader ) {
199+ options .setDebugMetaLoader (new AssetsDebugMetaLoader (context , options .getLogger ()));
200+ }
190201
191202 final boolean isAndroidXScrollViewAvailable =
192203 loadClass .isClassAvailable ("androidx.core.view.ScrollingView" , options );
@@ -218,7 +229,9 @@ static void initializeIntegrationsAndProcessors(
218229 options .setViewHierarchyExporters (viewHierarchyExporters );
219230 }
220231
221- options .setThreadChecker (AndroidThreadChecker .getInstance ());
232+ if (options .getThreadChecker () instanceof NoOpThreadChecker ) {
233+ options .setThreadChecker (AndroidThreadChecker .getInstance ());
234+ }
222235 if (options .getPerformanceCollectors ().isEmpty ()) {
223236 options .addPerformanceCollector (new AndroidMemoryCollector ());
224237 options .addPerformanceCollector (new AndroidCpuCollector (options .getLogger ()));
@@ -232,7 +245,9 @@ static void initializeIntegrationsAndProcessors(
232245 "options.getFrameMetricsCollector is required" )));
233246 }
234247 }
235- options .setCompositePerformanceCollector (new DefaultCompositePerformanceCollector (options ));
248+ if (options .getCompositePerformanceCollector () instanceof NoOpCompositePerformanceCollector ) {
249+ options .setCompositePerformanceCollector (new DefaultCompositePerformanceCollector (options ));
250+ }
236251 }
237252
238253 /** Setup the correct profiler (transaction or continuous) based on the options. */
0 commit comments