I am creating an app that uses FilePicker to get images from the user's gallery but I am receiving type cast errors.
lib/widgets/rounded_image.dart:53:34: Error: The argument type 'PlatformFile' can't be assigned to the parameter type 'String'.
Here's the class
class RoundedImageFile extends StatelessWidget {
final PlatformFile? image;
final double size;
const RoundedImageFile({
required Key key,
required this.image,
required this.size,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: size,
height: size,
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.cover,
image: AssetImage(image), <--Type cast error here
),
borderRadius: BorderRadius.all(
Radius.circular(size),
),
color: Colors.black,
),
);
}
}
This is the class that sets the image as a profile image:
PlatformFile? _profileImage;
Widget _profileImageField() {
return GestureDetector(
onTap: () {
GetIt.instance.get<MediaService>().pickImageFromLibrary().then(
(_file) {
setState(
() {
_profileImage = _file;
}
);
}
);
},
child: () {
if (_profileImage != null) {
return RoundedImageFile(
key: UniqueKey(),
image: _profileImage!,
size: _deviceHeight * 0.15,
);
}
Casting as String gives the same error and parsing toString gives me the following:

I'm stumped since it would have worked in earlier versions I think. Thanks for the responses. Please let me know if I must include more code.
EDIT*: I have tried using FileImage instead of AssetImage and get a different cast type error:
The argument type 'PlatformFile?' can't be assigned to the parameter type 'File'.
the problem is that you're using
AssetImage, which reads images from your code and not the Device's storage. you should be usingFileImage: