From ab87b44dca7ccf9c5f48bc9daebf9edf94a1f390 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Wed, 26 Sep 2018 13:30:13 +0800 Subject: [PATCH] Fix UsbDeviceManager null object reference STORAGE_SERVICE is not ready or not available to use. UsbDeviceManager will get null value and cause null object reference exception. Check return value before use. Test: No exception when start USBService Change-Id: Icdbc532894d3ca1548f327d9f63d495baa549c68 --- services/usb/java/com/android/server/usb/UsbDeviceManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java index 36f8063cca529..4da7285bcf2dd 100644 --- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java +++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java @@ -539,7 +539,8 @@ public class UsbDeviceManager implements ActivityManagerInternal.ScreenObserver // We do not show the USB notification if the primary volume supports mass storage. // The legacy mass storage UI will be used instead. final StorageManager storageManager = StorageManager.from(mContext); - final StorageVolume primary = storageManager.getPrimaryVolume(); + final StorageVolume primary = + storageManager != null ? storageManager.getPrimaryVolume() : null; boolean massStorageSupported = primary != null && primary.allowMassStorage(); mUseUsbNotification = !massStorageSupported && mContext.getResources().getBoolean(