How to fix "Exception caught by image resource service"

Issue

I have created a resources folder to store my images.

part of 'resources.dart';

    class IconImages {
      IconImages._();
    
      static const String test1 = 'assets/images/test1.jpg';
      static const String test2 = 'assets/images/test2.jpg';
      static const String test3 = 'assets/images/test3.jpg';
    }

I write them to the Map collection

 final imagesIcon = <int, String>{
    1: IconImages.test1,
    2: IconImages.test2,
    3: IconImages.test3,
  }; 

and then pass the recorded images to the button.

 icon:  Image(image: AssetImage(imagesIcon.values.toString())),

// full button

    Column(             
                        children: [
                          Container(
                            color: Colors.lightBlueAccent,
                            child: IconButton(
                                                icon:  Image(image: AssetImage(imagesIcon.values.toString())),
                                                onPressed: () {},),
                          ),
                          SizedBox(height: 40,),
                          Container(
                            color: Colors.lightBlueAccent,
                            child: IconButton(  
                                                icon:  Image(image: AssetImage(imagesIcon.values.toString())),
                                                onPressed: () {},),
                          ),
                          SizedBox(height: 40,),
                          Container(
                            color: Colors.lightBlueAccent,
                            child: IconButton(
                                                icon:   Image(image: AssetImage(imagesIcon.values.toString())),
                                                onPressed: () {},), 
                          ),          
                        ],
                      ),

When I execute my code, I get the following exception

enter image description here

Everything works when I transmit the image in this form

icon:  Image(image: AssetImage(IconImages.test2)),

But when I try to get a path from Map in this way, the above error is obtained

 icon:  Image(image: AssetImage(imagesIcon.values.toString())),

Solution

You are using your map wrong:

IconButton(
  icon: Image(image: AssetImage(imagesIcon[1].toString())),
  onPressed: () {},
),

Answered By – eamirho3ein

Answer Checked By – Marilyn (FlutterFixes Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *