【问题标题】:Flutter image_picker provider error when trying to open camera尝试打开相机时颤动 image_picker 提供程序错误
【发布时间】:2021-09-24 06:39:52
【问题描述】:

我将 image_picker 添加到我的颤振应用程序中,它在从图库中选择时可以工作,但是当我尝试从相机中获取图像时,它会出现以下错误(我使用的是 Android 11):

E/MethodChannel#plugins.flutter.io/image_picker(17622): Failed to handle method call E/MethodChannel#plugins.flutter.io/image_picker(17622): java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority <package_name>.flutter.image_provider E/MethodChannel#plugins.flutter.io/image_picker(17622): at androidx.core.content.FileProvider.parsePathStrategy(FileProvider.java:606) E/MethodChannel#plugins.flutter.io/image_picker(17622): at androidx.core.content.FileProvider.getPathStrategy(FileProvider.java:579) E/MethodChannel#plugins.flutter.io/image_picker(17622): at androidx.core.content.FileProvider.getUriForFile(FileProvider.java:417) E/MethodChannel#plugins.flutter.io/image_picker(17622): at io.flutter.plugins.imagepicker.ImagePickerDelegate$3.resolveFileProviderUriForFile(ImagePickerDelegate.java:160) E/MethodChannel#plugins.flutter.io/image_picker(17622): at io.flutter.plugins.imagepicker.ImagePickerDelegate.launchTakeImageWithCameraIntent(ImagePickerDelegate.java:384) E/MethodChannel#plugins.flutter.io/image_picker(17622): at io.flutter.plugins.imagepicker.ImagePickerDelegate.takeImageWithCamera(ImagePickerDelegate.java:358) E/MethodChannel#plugins.flutter.io/image_picker(17622): at io.flutter.plugins.imagepicker.ImagePickerPlugin.onMethodCall(ImagePickerPlugin.java:300) E/MethodChannel#plugins.flutter.io/image_picker(17622): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233) E/MethodChannel#plugins.flutter.io/image_picker(17622): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85) E/MethodChannel#plugins.flutter.io/image_picker(17622): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:818) E/MethodChannel#plugins.flutter.io/image_picker(17622): at android.os.MessageQueue.nativePollOnce(Native Method) E/MethodChannel#plugins.flutter.io/image_picker(17622): at android.os.MessageQueue.next(MessageQueue.java:335) E/MethodChannel#plugins.flutter.io/image_picker(17622): at android.os.Looper.loop(Looper.java:206) E/MethodChannel#plugins.flutter.io/image_picker(17622): at android.app.ActivityThread.main(ActivityThread.java:8512) E/MethodChannel#plugins.flutter.io/image_picker(17622): at java.lang.reflect.Method.invoke(Native Method) E/MethodChannel#plugins.flutter.io/image_picker(17622): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) E/MethodChannel#plugins.flutter.io/image_picker(17622): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

这是我的代码:


  File _image;

  ImagePicker picker = ImagePicker();

  Future pickImage(ImageSource source) async {
    print("picking image");
    try {
      final pickedFile = await picker.getImage(
          source: source,
          preferredCameraDevice: CameraDevice.rear,
          );

      
      if (pickedFile != null) {
        setState(() {
          _image = File(pickedFile.path);
        });
      } else {
        return null;
      }
    } catch (e) {
      print("error");
    }
  }

 .
 .
 .

 onTap: () {
     var source = ImageSource.gallery;
   
     pickImage(source);
   },
 .
 .
 .
  onTap: () {
     var source = ImageSource.camera;
    
     pickImage(source);
   },

当我将提供程序添加到 andoridmanifest 时出现另一个错误。

E/MethodChannel#plugins.flutter.io/image_picker(14565): Failed to handle method call E/MethodChannel#plugins.flutter.io/image_picker(14565): java.lang.IllegalArgumentException: Failed to find configured root that contains /data/data/<package_name>/cache/91958bf6-db2c-46d3-bf0c-b31c3dd0fc1c2799268083033056301.jpg E/MethodChannel#plugins.flutter.io/image_picker(14565): at androidx.core.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:744) E/MethodChannel#plugins.flutter.io/image_picker(14565): at androidx.core.content.FileProvider.getUriForFile(FileProvider.java:418) E/MethodChannel#plugins.flutter.io/image_picker(14565): at io.flutter.plugins.imagepicker.ImagePickerDelegate$3.resolveFileProviderUriForFile(ImagePickerDelegate.java:160) E/MethodChannel#plugins.flutter.io/image_picker(14565): at io.flutter.plugins.imagepicker.ImagePickerDelegate.launchTakeImageWithCameraIntent(ImagePickerDelegate.java:384) E/MethodChannel#plugins.flutter.io/image_picker(14565): at io.flutter.plugins.imagepicker.ImagePickerDelegate.takeImageWithCamera(ImagePickerDelegate.java:358) E/MethodChannel#plugins.flutter.io/image_picker(14565): at io.flutter.plugins.imagepicker.ImagePickerPlugin.onMethodCall(ImagePickerPlugin.java:300) E/MethodChannel#plugins.flutter.io/image_picker(14565): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233) E/MethodChannel#plugins.flutter.io/image_picker(14565): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85) E/MethodChannel#plugins.flutter.io/image_picker(14565): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:818) E/MethodChannel#plugins.flutter.io/image_picker(14565): at android.os.MessageQueue.nativePollOnce(Native Method) E/MethodChannel#plugins.flutter.io/image_picker(14565): at android.os.MessageQueue.next(MessageQueue.java:335) E/MethodChannel#plugins.flutter.io/image_picker(14565): at android.os.Looper.loop(Looper.java:206) E/MethodChannel#plugins.flutter.io/image_picker(14565): at android.app.ActivityThread.main(ActivityThread.java:8512) E/MethodChannel#plugins.flutter.io/image_picker(14565): at java.lang.reflect.Method.invoke(Native Method) E/MethodChannel#plugins.flutter.io/image_picker(14565): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) E/MethodChannel#plugins.flutter.io/image_picker(14565): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)

【问题讨论】:

标签: android flutter dart imagepicker


【解决方案1】:

通过将<cache-path name="cache" path="."/> 添加到@xml/filepaths 修复

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多