NullPointerException on requestDevicePermission

Viewed 109

Getting a NullPointerException on usbManager.requestPermission()

try
{
    UsbManager manager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
    manager.requestPermission(device, PendingIntent.getBroadcast(context, 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_ONE_SHOT));
}
catch (Exception e)
{
    e.printStackTrace();
}

Error :

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' on a null object reference
at android.os.Parcel.createException(Parcel.java:1956)
        at android.os.Parcel.readException(Parcel.java:1918)
at android.os.Parcel.readException(Parcel.java:1868)
at android.hardware.usb.IUsbManager$Stub$Proxy.requestDevicePermission(IUsbManager.java:682)
at android.hardware.usb.UsbManager.requestPermission(UsbManager.java:554)

Which string is Android trying to compare? How can I bypass this error?

Other info:

  • Android 9
  • Problem does not appears on every device
  • UsbDevice[mName=/dev/bus/usb/001/008,mVendorId=1947,mProductId=40,mClass=2,mSubclass=0,mProtocol=0,mManufacturerName=null,mProductName=null,mVersion=0.00,mSerialNumber=null,mConfigurations=[ UsbConfiguration[mId=1,mName=null,mAttributes=128,mMaxPower=71,mInterfaces=[ UsbInterface[mId=0,mAlternateSetting=0,mName=null,mClass=2,mSubclass=2,mProtocol=1,mEndpoints=[ UsbEndpoint[mAddress=131,mAttributes=3,mMaxPacketSize=8,mInterval=4]] W/System.err: UsbInterface[mId=1,mAlternateSetting=0,mName=null,mClass=10,mSubclass=0,mProtocol=0,mEndpoints=[ UsbEndpoint[mAddress=129,mAttributes=2,mMaxPacketSize=64,mInterval=0] UsbEndpoint[mAddress=2,mAttributes=2,mMaxPacketSize=64,mInterval=0]]]]
1 Answers

Did you double check if getManager() delivers a proper instance? Looks like the methods you call on UsbManager manager are throwing the exception.

Maybe use debug to find if there is an instance retreived.

Related