【问题标题】:Getting error in Image picking in flutter application for iOS在 iOS 的颤振应用程序中选择图像时出错
【发布时间】:2020-11-15 07:21:49
【问题描述】:

我在颤振应用程序中有两个图像按钮来从图库中选择图像,当我按下任何 ImageButton 并尝试选择它成功选择的图像时。之后,当我尝试使用其他图像按钮来选择另一个图像时,应用程序在 iOS 中崩溃了

每次执行不同的调用以获取图像时选择图像。

以下是每次调用的方法

Future getImage2() async {
    print("get image");

    PickedFile image = await _picker2.getImage(source: ImageSource.gallery);

   // File image = await ImagePicker.pickImage(source: ImageSource.gallery);
    if (image != null) {
      setState(() {
        final File file = File(image.path);
        avatarImageFile2 = file;
        isLoading2 = true;
        

      });
    }
  }


Future getImage1() async {
    print("get image");

    PickedFile image = await _picker1.getImage(source: ImageSource.gallery);

   // File image = await ImagePicker.pickImage(source: ImageSource.gallery);
    if (image != null) {
      setState(() {
        final File file = File(image.path);
        avatarImageFile1 = file;
        isLoading1 = true;
       

      });
    }
  }

请指导我应该如何解决它

【问题讨论】:

    标签: ios flutter dart imagepicker


    【解决方案1】:

    如果你没有添加权限,那么 将以下键添加到位于 /ios/Runner/Info.plist 中的 Info.plist 文件:

    NSPhotoLibraryUsageDescription - 说明您的应用为何需要照片库权限。这在可视化编辑器中称为隐私 - 照片库使用说明。

    NSCameraUsageDescription - 描述您的应用需要访问相机的原因。这在可视化编辑器中称为隐私 - 相机使用说明。

    NSMicrophoneUsageDescription - 如果您打算录制视频,请描述您的应用需要访问麦克风的原因。这在可视化编辑器中称为隐私 - 麦克风使用说明。

    如果你已经添加了这个 试试这个代码。

    import 'dart:io';
    import 'package:flutter/material.dart';
    import 'package:image_picker/image_picker.dart'; 
    
     void main() => runApp(MyApp()); 
    
    
    
    class MyApp extends StatelessWidget { 
    @override 
    Widget build(BuildContext context) {
     return MaterialApp( home: MyHomePage(), 
        ); 
       }
     }
    
    
     class MyHomePage extends StatefulWidget { @override
     _MyHomePageState createState() =>
    _MyHomePageState();
     } 
    
    
    class _MyHomePageState extends State<MyHomePage> {
    
     File _image; final picker = ImagePicker(); 
    
    Future getImage() async { 
    final pickedFile = await picker.getImage(source: ImageSource.camera);
    
     setState(() {
     if (pickedFile != null) {
     _image = File(pickedFile.path); 
    } else {
    
     print('No image selected.');
     }
     }); 
    } @override
     Widget build(BuildContext context) { 
    
    return Scaffold(
     appBar: AppBar( 
    
    title: Text('Image Picker Example'),
    
     ),
    
     body: Center( child: _image == null ? Text('No image selected.') : Image.file(_image), 
    
    ), 
    
    floatingActionButton: FloatingActionButton( onPressed: getImage,
    
     tooltip: 'Pick Image',
     child: Icon(Icons.add_a_photo),
     
            ),
          ); 
        }
      }
    

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 1970-01-01
      • 2021-08-23
      • 2020-04-20
      • 2021-05-12
      • 2020-02-23
      • 1970-01-01
      • 2020-05-11
      • 2021-03-20
      相关资源
      最近更新 更多