Skip to content

fix(android): preserve SDL3-CS to stop OsuGameActivity JNI activation crash - #323

Merged
winnerspiros merged 6 commits into
masterfrom
copilot/fix-crash-log-issue
May 9, 2026
Merged

fix(android): preserve SDL3-CS to stop OsuGameActivity JNI activation crash#323
winnerspiros merged 6 commits into
masterfrom
copilot/fix-crash-log-issue

Conversation

Copilot AI commented May 9, 2026

Copy link
Copy Markdown
  • Directory.Build.props: Microsoft.CodeAnalysis.BannedApiAnalyzers 3.3.4 → 4.14.0
  • osu.Game/osu.Game.csproj: SignalR.* / Sqlite / Config.Abstractions 10.0.5 → 10.0.7, Sentry 6.2.0 → 6.5.0, SQLitePCLRaw 3.0.2 → 3.0.3, NUnit 4.5.1 → 4.6.0
  • osu.Desktop/osu.Desktop.csproj: System.IO.Packaging 10.0.5 → 10.0.7, DiscordRichPresence 1.5.0.51 → 1.6.1.70 (1.143.0 has breaking API changes)
  • osu.Android/osu.Android.csproj + osu.iOS/osu.iOS.csproj: Microsoft.Maui.Essentials 10.0.51 → 10.0.60
  • osu.Game.Rulesets.Osu.Tests.iOS.csproj + osu.Game.Tests.Android.csproj + osu.Game.Tests.iOS.csproj: DeepEqual 2.0.0 → 5.1.0
  • All test csproj files (main + templates): Microsoft.NET.Test.Sdk → 18.5.1, NUnit → 4.6.0
  • osu.Game.Benchmarks.csproj: nunit 4.5.1 → 4.6.0
  • .github/workflows/ci.yml: JetBrains/ReSharper-InspectCode@v0.12 → @v0.13

…ity JNI activation crash

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/3e3e344a-127e-4c51-b475-cfaa53791766

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
@gitar-bot

gitar-bot Bot commented May 9, 2026

Copy link
Copy Markdown

Gitar is working

Gitar

…uppression

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/29c65f29-ab61-4fc1-8533-85179a4caf15

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
Copilot AI and others added 2 commits May 9, 2026 10:12
….0.51)

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/a970ff72-5ae4-4b70-9bb2-0835b7799175

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
Copilot AI requested a review from winnerspiros May 9, 2026 10:27
@winnerspiros
winnerspiros marked this pull request as ready for review May 9, 2026 10:45
Copilot AI review requested due to automatic review settings May 9, 2026 10:45
@winnerspiros
winnerspiros merged commit b6ea72e into master May 9, 2026
22 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses an Android Release startup crash caused by linker trimming of JNI-activation constructors (via preserving SDL3-CS / SDLActivity), while also updating a range of dependencies and CI tooling versions across the solution.

Changes:

  • Android: add explicit preservation/backstops for SDL3-CS / Org.Libsdl.App.SDLActivity to prevent JNI activation crashes under AndroidLinkMode=Full.
  • Update NuGet package versions across game, platform, benchmarks, and test/template projects.
  • CI: bump ReSharper InspectCode GitHub Action version.

Reviewed changes

Copilot reviewed 23 out of 23 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Templates/Rulesets/ruleset-scrolling-example/osu.Game.Rulesets.Pippidon.Tests/osu.Game.Rulesets.Pippidon.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions in template test project.
Templates/Rulesets/ruleset-scrolling-empty/osu.Game.Rulesets.EmptyScrolling.Tests/osu.Game.Rulesets.EmptyScrolling.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions in template test project.
Templates/Rulesets/ruleset-example/osu.Game.Rulesets.Pippidon.Tests/osu.Game.Rulesets.Pippidon.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions in template test project.
Templates/Rulesets/ruleset-empty/osu.Game.Rulesets.EmptyFreeform.Tests/osu.Game.Rulesets.EmptyFreeform.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions in template test project.
osu.iOS/osu.iOS.csproj Bump Microsoft.Maui.Essentials for iOS.
osu.Game/osu.Game.csproj Bump runtime/test dependencies (SignalR, Sqlite, Sentry, SharpCompress, NUnit, SQLitePCLRaw) and fix a framework-version comment.
osu.Game.Tournament.Tests/osu.Game.Tournament.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions.
osu.Game.Tests/osu.Game.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions.
osu.Game.Tests.iOS/osu.Game.Tests.iOS.csproj Bump DeepEqual version for iOS tests.
osu.Game.Tests.Android/osu.Game.Tests.Android.csproj Bump DeepEqual version for Android tests.
osu.Game.Rulesets.Taiko.Tests/osu.Game.Rulesets.Taiko.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions.
osu.Game.Rulesets.Osu.Tests/osu.Game.Rulesets.Osu.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions.
osu.Game.Rulesets.Osu.Tests.iOS/osu.Game.Rulesets.Osu.Tests.iOS.csproj Bump DeepEqual version for iOS ruleset tests.
osu.Game.Rulesets.Mania.Tests/osu.Game.Rulesets.Mania.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions.
osu.Game.Rulesets.Catch.Tests/osu.Game.Rulesets.Catch.Tests.csproj Bump Microsoft.NET.Test.Sdk and NUnit versions.
osu.Game.Benchmarks/osu.Game.Benchmarks.csproj Bump nunit package version for benchmarks project.
osu.Desktop/osu.Desktop.csproj Bump System.IO.Packaging and DiscordRichPresence versions.
osu.Android/OsuGameActivity.cs Add DynamicDependency rooting for SDLActivity constructors as a trimming backstop.
osu.Android/osu.Android.csproj Bump Microsoft.Maui.Essentials for Android.
osu.Android/Linker.xml Add SDL3-CS preserve rule + update explanatory comments about JNI ctor trimming.
osu.Android.props Add AndroidLinkSkip entries for osu.Framework.Android and SDL3-CS in Release.
Directory.Build.props Bump Microsoft.CodeAnalysis.BannedApiAnalyzers version.
.github/workflows/ci.yml Bump JetBrains/ReSharper-InspectCode action version.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

<ItemGroup Label="Package References">
<PackageReference Include="System.IO.Packaging" Version="10.0.5" />
<PackageReference Include="System.IO.Packaging" Version="10.0.7" />
<!-- Held back due to invite bug in newer versions. See https://github.com/Lachee/discord-rpc-csharp/issues/286-->
Comment on lines +92 to +96
// Belt-and-suspenders: preserve the JNI activation constructor chain that TypeManager.Activate
// uses when Android creates this Activity: OsuGameActivity → AndroidGameActivity → SDLActivity.
// The primary guard is AndroidLinkSkip in osu.Android.props (bypasses ILLink entirely for
// osu.Framework.Android and SDL3-CS). These [DynamicDependency] attributes are a code-level
// backstop in case AndroidLinkSkip is removed: ILLink's walk from OsuGameActivity() roots
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants