Fixed UnsatisfiedLinkError when initializing the HIDDeviceManager in some cases

Sam Lantinga 2018-10-01 14:52:28 -07:00
parent 6e35e42145
commit 679d355317
1 changed files with 13 additions and 1 deletions

View File

@ -80,6 +80,14 @@ public class HIDDeviceManager {
public HIDDeviceManager(Context context) { public HIDDeviceManager(Context context) {
mContext = context; mContext = context;
// Make sure we have the HIDAPI library loaded with the native functions
try {
System.loadLibrary("hidapi");
} catch (Exception e) {
Log.w(TAG, "Couldn't load hidapi: " + e.toString());
return;
}
HIDDeviceRegisterCallback(this); HIDDeviceRegisterCallback(this);
mSharedPreferences = mContext.getSharedPreferences("hidapi", Context.MODE_PRIVATE); mSharedPreferences = mContext.getSharedPreferences("hidapi", Context.MODE_PRIVATE);
@ -180,7 +188,11 @@ public class HIDDeviceManager {
} }
protected void shutdownUSB() { protected void shutdownUSB() {
mContext.unregisterReceiver(mUsbBroadcast); try {
mContext.unregisterReceiver(mUsbBroadcast);
} catch (Exception e) {
// We may not have registered, that's okay
}
} }
protected boolean isHIDDeviceUSB(UsbDevice usbDevice) { protected boolean isHIDDeviceUSB(UsbDevice usbDevice) {