iOS 的 flutter 应用程序中的图像拾取错误

Getting error in Image picking in flutter application for iOS

我在 flutter 应用程序中有两个图像按钮可以从图库中选择图像,当我按下任何一个 ImageButton 并尝试 select 它被成功选择的图像时。之后,当我尝试使用其他图像按钮选择另一张图像时,应用程序崩溃 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;
       

      });
    }
  }

请指导我该如何解决

如果你没有被添加权限,那么 将以下键添加到您的 Info.plist 文件,位于 /ios/Runner/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),
 
        ),
      ); 
    }
  }