hnvn / flutter_image_cropper

A Flutter plugin for Android and iOS supports cropping images

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sending empty preset array throws an exception on android

MehmetKaranlik opened this issue · comments

In my project function below throws exception that i shared below. Due to my conditions setOptions returns null so it takes empty array and throws.

  Future<CroppedFile?> cropImage(XFile? file) async {
    if (file == null) return null;

    final croppedFile = await imageCropper?.cropImage(
      sourcePath: file.path,
      aspectRatioPresets: delegate?.setOptions()?.aspectRatioPresets ?? <CropAspectRatioPreset>[],
      cropStyle: delegate?.setOptions()?.cropStyle ?? CropStyle.rectangle,
      aspectRatio: delegate?.setOptions()?.aspectRatio,
      maxHeight: delegate?.setOptions()?.maxHeight ?? kProfileMaxResolution,
      maxWidth: delegate?.setOptions()?.maxWidth ?? kProfileMaxResolution,
    );
    if (croppedFile == null) {
      delegate?.imagePickerDidCancel();
    } else {
      delegate?.imageCropperDidCropImage(croppedFile);
    }

    return croppedFile;
  }

Log

E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): java.lang.IllegalArgumentException: Index [selectedByDefault = 0] (0-based) cannot be higher or equal than aspect ratio options count [count = 0].
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at com.yalantis.ucrop.UCrop$Options.setAspectRatioOptions(UCrop.java:491)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at vn.hunghd.flutter.plugins.imagecropper.ImageCropperDelegate.startCrop(ImageCropperDelegate.java:86)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at vn.hunghd.flutter.plugins.imagecropper.ImageCropperPlugin.onMethodCall(ImageCropperPlugin.java:59)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:258)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at android.os.Handler.handleCallback(Handler.java:907)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at android.os.Handler.dispatchMessage(Handler.java:105)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at android.os.Looper.loop(Looper.java:216)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at android.app.ActivityThread.main(ActivityThread.java:7625)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/MethodChannel#plugins.hunghd.vn/image_cropper(17274): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
E/flutter (17274): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(error, Index [selectedByDefault = 0] (0-based) cannot be higher or equal than aspect ratio options count [count = 0]., null, java.lang.IllegalArgumentException: Index [selectedByDefault = 0] (0-based) cannot be higher or equal than aspect ratio options count [count = 0].
E/flutter (17274): 	at com.yalantis.ucrop.UCrop$Options.setAspectRatioOptions(UCrop.java:491)
E/flutter (17274): 	at vn.hunghd.flutter.plugins.imagecropper.ImageCropperDelegate.startCrop(ImageCropperDelegate.java:86)
E/flutter (17274): 	at vn.hunghd.flutter.plugins.imagecropper.ImageCropperPlugin.onMethodCall(ImageCropperPlugin.java:59)
E/flutter (17274): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:258)
E/flutter (17274): 	at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/flutter (17274): 	at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
E/flutter (17274): 	at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/flutter (17274): 	at android.os.Handler.handleCallback(Handler.java:907)
E/flutter (17274): 	at android.os.Handler.dispatchMessage(Handler.java:105)
E/flutter (17274): 	at android.os.Looper.loop(Looper.java:216)
E/flutter (17274): 	at android.app.ActivityThread.main(ActivityThread.java:7625)
E/flutter (17274): 	at java.lang.reflect.Method.invoke(Native Method)
E/flutter (17274): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/flutter (17274): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)

same any update?