Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix compareTo methods and remove problematic profiling classes
  • Loading branch information
bitsandfoxes committed Apr 2, 2025
commit cefa5185a4e363c78d467461915d2073272f3791
30 changes: 28 additions & 2 deletions src/Sentry.Bindings.Android/Transforms/Metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,20 +64,46 @@
<attr path="/api/package[@name='io.sentry']/interface[@name='ObjectReader']/method[@name='dateOrNull']" name="visibility">internal</attr>


<!-- Fix missing compareTo(Object) methods on classes extending SentryDate. -->
<!-- Fix missing compareTo(Object) methods on classes extending SentryDate. -->
<add-node path="/api/package[@name='io.sentry']/class[@extends='io.sentry.SentryDate']">
<method name="compareTo" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public">
<parameter name="p0" type="java.lang.Object" />
</method>
</add-node>

<!-- Fix missing compareTo(Object) method for EventProcessorAndOrder-->
<add-node path="/api/package[@name='io.sentry.internal.eventprocessor']/class[@name='EventProcessorAndOrder']">
<method name="compareTo" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public">
<parameter name="p0" type="java.lang.Object" />
</method>
</add-node>

<!-- Fix missing compareTo(Object) method for Breadcrumb -->
<add-node path="/api/package[@name='io.sentry']/class[@name='Breadcrumb']">
<method name="compareTo" return="int" abstract="false" native="false" synchronized="false" static="false" final="false" deprecated="not deprecated" visibility="public">
<parameter name="p0" type="java.lang.Object" />
</method>
</add-node>

<!--
TODO: If we need this, figure out how to multi-target or late bind.
This API uses FrameMetrics, which requires Android >= 24.0. We currently target Android >= 21.0 which is the minimum supported by MAUI.
AndroidProfiler is dependant on SentryFrameMetricsCollector
-->
<remove-node path="/api/package[@name='io.sentry.android.core']/class[@name='SpanFrameMetricsCollector']/*" />
<remove-node path="/api/package[@name='io.sentry.android.core.internal.util']/*[starts-with(@name,'SentryFrameMetricsCollector')]" />
<remove-node path="/api/package[@name='io.sentry.android.core']/class[@name='AndroidProfiler']/*" />
<remove-node path="/api/package[@name='io.sentry.android.core']/class[@name='AndroidContinuousProfiler']/*" />

<remove-node path="/api/package[@name='io.sentry.android.core']/class[@name='SentryAndroidOptions']/method[@name='getFrameMetricsCollector']" />
<remove-node path="/api/package[@name='io.sentry.android.core']/class[@name='SentryAndroidOptions']/method[@name='setFrameMetricsCollector']" />

<!-- Remove problematic classes for profiling that create a stack overflow during code generation, which appears as:
error MSB6006: "dotnet" exited with code 134
-->
<remove-node path="/api/package[@name='io.sentry']/class[@name='ProfileChunk']" />
<remove-node path="/api/package[@name='io.sentry']/class[@name='ProfilingTraceData']" />
<remove-node path="/api/package[@name='io.sentry.android.core']/class[@name='AndroidProfiler']" />

<!--
The BackfillingEventProcessor interface creates a stack overflow during code generation, which appears as:
Expand Down Expand Up @@ -120,7 +146,7 @@

<remove-node path="/api/package[starts-with(@name,'io.sentry')]/*/method[@name='clone' and count(parameter)=0]" />
<remove-node path="/api/package[starts-with(@name,'io.sentry')]/class/implements[@name='io.sentry.JsonDeserializer']" />
<remove-node path="/api/package[@name='io.sentry.vendor.gson.stream']/class[@name='JsonToken']/field[@name='NAME']" />>
<remove-node path="/api/package[@name='io.sentry.vendor.gson.stream']/class[@name='JsonToken']/field[@name='NAME']" />

<remove-node path="/api/package[@name='io.sentry.exception']/class[@name='ExceptionMechanismException']" />
<remove-node path="/api/package[@name='io.sentry.exception']/class[@name='InvalidSentryTraceHeaderException']" />
Expand Down