【问题标题】:App crash on image click in release build using image_picker flutter使用 image_picker flutter 在发布版本中单击图像时应用程序崩溃
【发布时间】:2023-02-10 12:16:15
【问题描述】:

我的应用程序在点击图片时崩溃,但在调试模式下运行良好。

我在终端中收到以下错误

E/AndroidRuntime(18185): java.lang.NoClassDefFoundError: 解析失败:Lj$/util/DesugarTimeZone; E/AndroidRuntime(18185): 在 androidx.exifinterface.media.ExifInterface.(ExifInterface.java:3862) E/AndroidRuntime(18185): 在 io.flutter.plugins.imagepicker.ExifDataCopier.copyExif(ExifDataCopier.java:15) E/AndroidRuntime(18185): 在 io.flutter.plugins.imagepicker.ImageResizer.copyExif(ImageResizer.java:120) E/AndroidRuntime(18185): 在 io.flutter.plugins.imagepicker.ImageResizer.resizeImageIfNeeded(ImageResizer.java:49) E/AndroidRuntime(18185): 在 io.flutter.plugins.imagepicker.ImagePickerDelegate.getResizedImagePath(ImagePickerDelegate.java:603) E/AndroidRuntime(18185): 在 io.flutter.plugins.imagepicker.ImagePickerDelegate.handleImageResult(ImagePickerDelegate.java:587) E/AndroidRuntime(18185): 在 io.flutter.plugins.imagepicker.ImagePickerDelegate.access$000(ImagePickerDelegate.java:75) E/AndroidRuntime(18185): 在 io.flutter.plugins.imagepicker.ImagePickerDelegate$3.onPathReady(ImagePickerDelegate.java:535) E/AndroidRuntime(18185): 在 io.flutter.plugins.imagepicker.ImagePickerDelegate$2$1.onScanCompleted(ImagePickerDelegate.java:163) E/AndroidRuntime(18185): 在 android.media.MediaScannerConnection.runCallBack(MediaScannerConnection.java:211) E/AndroidRuntime(18185): 在 android.media.MediaScannerConnection.lambda$scanFile$1(MediaScannerConnection.java:188) E/AndroidRuntime(18185):在 android.media.MediaScannerConnection$$ExternalSyntheticLambda0.run(未知来源:6) E/AndroidRuntime(18185): 在 android.os.Handler.handleCallback(Handler.java:938) E/AndroidRuntime(18185): 在 android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(18185): 在 android.os.Looper.loopOnce(Looper.java:233) E/AndroidRuntime(18185): 在 android.os.Looper.loop(Looper.java:344) E/AndroidRuntime(18185): 在 android.os.HandlerThread.run(HandlerThread.java:67) E / AndroidRuntime(18185):引起:java.lang.ClassNotFoundException:j $ .util.DesugarTimeZone E/AndroidRuntime(18185): ... 17 更多

我的图像选择器代码如下

Future pickFromCamera() async {
    var pickedFile = await ImagePicker().pickImage(
      source: ImageSource.camera,
      preferredCameraDevice: CameraDevice.front,
      imageQuality: 40,
      maxHeight: 1200,
      maxWidth: 1080,
    );

    var tempImage = pickedFile == null ? null : File(pickedFile.path);
    if (tempImage != null) {
      imageEdit.value = null;
      image.value = File(tempImage.path);
      File rotatedImage = await FlutterExifRotation.rotateImage(path: image.value!.path);
      base64Image.value = await convertToBase64(rotatedImage);
      update();
    }
  }

我的图像压缩器和 base64 转换器代码。

Future convertToBase64(File? img) async {
  File? result = await CompressImagesFlutter().compressImage(img!.path, quality: 20);
  File rotatedImage = await FlutterExifRotation.rotateImage(path: result!.path);
  return base64Encode(rotatedImage.readAsBytesSync());
}

【问题讨论】:

    标签: flutter crash flutter-image-picker


    【解决方案1】:

    尝试更改 build.gradle 中的 coreLibraryDesugaring 依赖项

    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.2'
    

    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_minimal:2.0.2'
    

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多