diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java b/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java index 31b07b0ac0..2a0296eb0c 100644 --- a/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java +++ b/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java @@ -91,7 +91,13 @@ public class SDLControllerManager * This method is called by SDL using JNI. */ static void joystickSetSensorsEnabled(int device_id, boolean enabled) { - mJoystickHandler.setSensorsEnabled(device_id, enabled); + // Run this on the UI thread so we don't race with enableSensor() in SDLSurface.java + SDL.getContext().runOnUiThread(new Runnable() { + @Override + public void run() { + mJoystickHandler.setSensorsEnabled(device_id, enabled); + } + }); } /**