2017-06-14 10 views
-6

私はlibaumsをファイルの読み取りに使用しています。私はテストファイルからコピーするだけです。しかし、私はUSBを接続していない場合、私にエラーが発生します。配列インデックス外の長さ例外長さ= 0; index = 0

Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0 

これは私のコードです。

private void discoverDevice() { 
     UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE); 
     UsbMassStorageDevice[] devices = UsbMassStorageDevice.getMassStorageDevices(this); 
     device = devices[0]; 
     UsbDevice usbDevice = getIntent().getParcelableExtra(UsbManager.EXTRA_DEVICE); 
     if (usbDevice != null && usbManager.hasPermission(usbDevice)) { 
      Log.d(TAG, "received usb device via intent"); 
      setupDevice(); 
     } else { 
      PendingIntent permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); 
      usbManager.requestPermission(device.getUsbDevice(), permissionIntent); 
     } 
    } 
+3

これは空の配列を返すため

 try { discoverDevice(); } catch (ArrayIndexOutOfBoundsException e) { e.printStackTrace(); } 

感謝の:

private void discoverDevice() throws ArrayIndexOutOfBoundsException{ UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE); UsbMassStorageDevice[] devices = UsbMassStorageDevice.getMassStorageDevices(this); devicea = devices[0]; UsbDevice usbDevice = getIntent().getParcelableExtra(UsbManager.EXTRA_DEVICE); if (usbDevice != null && usbManager.hasPermission(usbDevice)) { Log.d(TAG, "received usb device via intent"); setupDevice(); } else { PendingIntent permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); usbManager.requestPermission(devicea.getUsbDevice(), permissionIntent); } } 

とによってそれを呼び出す*** UsbMassStorageDevice.getMassStorageDevices(この); *** –

+2

それがスローされます ' java.lang.ArrayIndexOutOfBoundsException'はusbを見つけることができません。したがって、 'device = devices [0];'はこの例外をスローします。 – codeRock

+0

ありがとう、それは正常に動作します... addだけでこの例外がスローされます。 –

答えて

1

配列インデックス= 0境界例外の長さのうち。 index = 0

この行はエラーの原因です。最初の要素をフェッチする前に、空の配列をチェックする必要があります。

device = devices[0]; 
1

それが正常に動作...ちょうどこのは、ArrayIndexOutOfBoundsExceptionがスローされます追加します。 codeRock

関連する問題