TL;DR: Working files are here: https://github.com/MananAdhvaryu/Android-SDL2-Libraries

So I figured out the crash, it was cause due to the shared runtime that is implemented for debugging by Visual Studio. It was fixed by disabling Shared Runtime in the project settings.

Project Settings -> Android Options -> Untick "Use Shared Runtime"

1. As to why the GitHub Code didn't work:

It was due to broken .jar file in the "bindings" project. I was able to fix it by compiling the .jar file myself from the SDL2 source code. The .java file you need to compile are here, or you can get it from the source code.

Once you have the working .jar simply remove the existing .jar from the Jars folder and replace it with the new one.

If you can't generate the .jar file you can use the one in the GitHub project linked above

2. To create the .so files:

After that the necessary .so file for the processor architecture needs to be compiled. It is done using the Android NDK and a make script. The make script from the SDL2Droid GitHub works fine so I simply changed a few parameters to increase the android minSdkVersion to 19 and got the .so files for all the architectures (x86, x86_64, ARM, ARM64)

#!/bin/bash NATIVEDIR=$(dirname "$0") ndk-build -j 4 NDK_PROJECT_PATH="$NATIVEDIR/../SDL2Droid-CS" NDK_APPLICATION_MK="$NATIVEDIR/Application.mk"

This is the bash code to generate the .so files. If you are using Command prompt simply change the "$NATIVEDIR" to the absolute path of your project.

If you cannot generate these native libraries then you can use the one's from the above linked GitHub repository.

they require minimum sdk android-19 and are available for all supported architectures.

To use them simply place the libs folder in your Xamarin.Android project directory.