diff --git a/integration-test/Directory.Build.targets b/integration-test/Directory.Build.targets
index 09c9320b2a..79b6564725 100644
--- a/integration-test/Directory.Build.targets
+++ b/integration-test/Directory.Build.targets
@@ -1,3 +1,7 @@
+
+
+
+
diff --git a/integration-test/android.Tests.ps1 b/integration-test/android.Tests.ps1
index 60f16293d3..46df6a6a21 100644
--- a/integration-test/android.Tests.ps1
+++ b/integration-test/android.Tests.ps1
@@ -18,10 +18,12 @@ BeforeDiscovery {
}
$cases = @(
- @{ configuration = 'Release' }
- @{ configuration = 'Debug' }
+ @{ configuration = 'Release'; runtime = 'mono' }
+ @{ configuration = 'Release'; runtime = 'coreclr' }
+ @{ configuration = 'Debug'; runtime = 'mono' }
+ @{ configuration = 'Debug'; runtime = 'coreclr' }
)
-Describe 'MAUI app (, )' -ForEach $cases -Skip:(-not $script:emulator) {
+Describe 'MAUI app (, , )' -ForEach $cases -Skip:(-not $script:emulator) {
BeforeAll {
$tfm = "$dotnet_version-android$(GetAndroidTpv $dotnet_version)"
@@ -38,10 +40,12 @@ Describe 'MAUI app (, )' -ForEach $cases -Skip:(-
$rid = "android-$arch"
Write-Host "::group::Build Sentry.Maui.Device.IntegrationTestApp.csproj"
+ $useMonoRuntime = if ($runtime -eq 'mono') { 'true' } else { 'false' }
dotnet build Sentry.Maui.Device.IntegrationTestApp.csproj `
--configuration $configuration `
--framework $tfm `
- --runtime $rid
+ --runtime $rid `
+ -p:UseMonoRuntime=$useMonoRuntime
| ForEach-Object { Write-Host $_ }
Write-Host '::endgroup::'
$LASTEXITCODE | Should -Be 0
diff --git a/src/Sentry/Platforms/Android/SentrySdk.cs b/src/Sentry/Platforms/Android/SentrySdk.cs
index 7b3971287f..db52174ece 100644
--- a/src/Sentry/Platforms/Android/SentrySdk.cs
+++ b/src/Sentry/Platforms/Android/SentrySdk.cs
@@ -66,6 +66,14 @@ private static void InitSentryAndroidSdk(SentryOptions options)
o.ShutdownTimeoutMillis = (long)options.ShutdownTimeout.TotalMilliseconds;
var signalHandlerStrategy = options.Native.ExperimentalOptions.SignalHandlerStrategy;
+ if (signalHandlerStrategy == SignalHandlerStrategy.ChainAtStart
+ && Type.GetType("Mono.RuntimeStructs") == null)
+ {
+ options.LogDebug(
+ "SignalHandlerStrategy.ChainAtStart is not compatible with .NET CoreCLR runtime. " +
+ "Falling back to SignalHandlerStrategy.Default.");
+ signalHandlerStrategy = SignalHandlerStrategy.Default;
+ }
if (signalHandlerStrategy == SignalHandlerStrategy.ChainAtStart
&& System.Environment.Version is { Major: 10, Minor: 0, Build: < 4 })
{
diff --git a/src/Sentry/buildTransitive/Sentry.props b/src/Sentry/buildTransitive/Sentry.props
index c837e9af9e..1fa1e8ab69 100644
--- a/src/Sentry/buildTransitive/Sentry.props
+++ b/src/Sentry/buildTransitive/Sentry.props
@@ -5,5 +5,6 @@
<_SentryTargetFrameworkVersion>$([MSBuild]::GetTargetFrameworkVersion($(TargetFramework)))
<_SentryIsNet8OrGreater>$([MSBuild]::VersionGreaterThanOrEquals($(_SentryTargetFrameworkVersion), 8.0))
<_SentryIsNet9OrGreater>$([MSBuild]::VersionGreaterThanOrEquals($(_SentryTargetFrameworkVersion), 9.0))
+ <_SentryIsNet10OrGreater>$([MSBuild]::VersionGreaterThanOrEquals($(_SentryTargetFrameworkVersion), 10.0))
diff --git a/src/Sentry/buildTransitive/Sentry.targets b/src/Sentry/buildTransitive/Sentry.targets
index 168036eec3..5351f6e93c 100644
--- a/src/Sentry/buildTransitive/Sentry.targets
+++ b/src/Sentry/buildTransitive/Sentry.targets
@@ -281,6 +281,22 @@
+
+
+
+
+ <_Parameter1>io.sentry.ndk.preload
+ true
+
+
+
+