Browse Source

Fix nullptr crash on android

nullcheck the device coming back from InputDevice.getDevice(deviceId) in new code added to sdlactivity.onkey.


java.lang.NullPointerException:
  at org.libsdl.app.SDLSurface.onKey (SDLActivity.java:1793)
  at android.view.View.dispatchKeyEvent (View.java:13321)
  at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1912)
  at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1912)
  at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1912)
  at android.view.ViewGroup.dispatchKeyEvent (ViewGroup.java:1912)
  at com.android.internal.policy.DecorView.superDispatchKeyEvent (DecorView.java:685)
  at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent (PhoneWindow.java:1869)
  at android.app.Activity.dispatchKeyEvent (Activity.java:3447)
  at org.libsdl.app.SDLActivity.dispatchKeyEvent (SDLActivity.java:496)

@dang @saml @dave
Sam Lantinga 5 years ago
parent
commit
e92fe23c83
1 changed files with 4 additions and 1 deletions
  1. 4 1
      android-project/app/src/main/java/org/libsdl/app/SDLActivity.java

+ 4 - 1
android-project/app/src/main/java/org/libsdl/app/SDLActivity.java

@@ -1825,7 +1825,10 @@ class SDLSurface extends SurfaceView implements SurfaceHolder.Callback,
 
         if (source == InputDevice.SOURCE_UNKNOWN) {
             InputDevice device = InputDevice.getDevice(deviceId);
-            source = device.getSources();
+			if ( device != null )
+			{
+				source = device.getSources();
+			}
         }
 
         if ((source & InputDevice.SOURCE_KEYBOARD) != 0) {