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
This commit is contained in:
Sam Lantinga 2019-08-02 17:20:00 -07:00
parent 63197c4338
commit e92fe23c83
1 changed files with 4 additions and 1 deletions

View File

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