diff --git a/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java b/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java index d7ec7f1ab..fe0a7d9ad 100644 --- a/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java +++ b/android/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java @@ -175,8 +175,15 @@ final class CameraConfigurationManager { private Point findBestPreviewSizeValue(Camera.Parameters parameters, Point screenResolution) { + List rawSupportedSizes = parameters.getSupportedPreviewSizes(); + if (rawSupportedSizes == null) { + Log.w(TAG, "Device returned no supported preview sizes; using default"); + Camera.Size defaultSize = parameters.getPreviewSize(); + return new Point(defaultSize.width, defaultSize.height); + } + // Sort by size, descending - List supportedPreviewSizes = new ArrayList(parameters.getSupportedPreviewSizes()); + List supportedPreviewSizes = new ArrayList(rawSupportedSizes); Collections.sort(supportedPreviewSizes, new Comparator() { @Override public int compare(Camera.Size a, Camera.Size b) {