error explanation in android studio This expression has a type of 'void' so its value can't be used. (Documentation) Try checking to see if you're using the correct API; there might be a function or call that returns void you didn't expect. Also check type parameters and variables which might also be void.
void getFreeMarkers() async {
try {
double destLat, destLng;
String destCoords = "";
int parkingListLength = widget.model.freeParkingPlaces.length;
widget.model.freeMarkerDist.clear();
print("parking list length : $parkingListLength");
if (parkingListLength != 0) {
for (int i = 0; i < parkingListLength; i++) {
if (widget.model.freeParkingPlaces[i].latitude != null) {
destLat = double.parse(
(widget.model.freeParkingPlaces[i].latitude).toString());
destLng = double.parse(
(widget.model.freeParkingPlaces[i].longitude).toString());
** //i am having error on .add here**
await widget.model.freeMarkerDist.add(
Conversion.coordinateDistance(widget.model.userCoords[0],
widget.model.userCoords[1], destLat, destLng),
);
final Uint8List markerIcon = await Conversion.getBytesFromAsset(
'assets/images/freeParking.png', 100);
if (i < parkingListLength - 1)
destCoords +=
(widget.model.freeParkingPlaces[i].latitude).toString() +
"," +
(widget.model.freeParkingPlaces[i].longitude).toString() +
"|";
else
destCoords +=
(widget.model.freeParkingPlaces[i].latitude).toString() +
"," +
(widget.model.freeParkingPlaces[i].longitude).toString();
_parkingmarkers.add(
Marker(
flat: true,
markerId:
MarkerId("${i + widget.model.multipleParking.length}"),
icon: BitmapDescriptor.fromBytes(markerIcon),
onTap: () {
showinfo(
i + widget.model.multipleParking.length, true, false);
c.animateCamera(CameraUpdate.newLatLngZoom(
LatLng(
double.parse(
(widget.model.freeParkingPlaces[i].latitude)
.toString()),
double.parse(
(widget.model.freeParkingPlaces[i].longitude)
.toString()),
),
14));
},
// if converting to double like this doesn't work then use double.parse(var.toString())
position: LatLng(
double.parse(
(widget.model.freeParkingPlaces[i].latitude).toString()),
double.parse(
(widget.model.freeParkingPlaces[i].longitude).toString()),
),
),
);
}
}
// call api to get timings
await getFreeTimings(destCoords);
} else {
print("length = 0");
}
} catch (e) {
print("inside get markers catch");
print(e);
print("Catch block of getMarkers finished");
}
setState(() {});
print("\n outside get markers\n");
}
**Feteching FreeMarketDist from here**
mixin ConnectedModel on Model {
bool _isloading = false;
late User _authenticatedUser;
PublishSubject<HomePageMode> _usermode = PublishSubject();
late Timer _authtimer;
List<dynamic> multipleParking = [];
List<dynamic>? allParking = [];
List<dynamic>? rentParking = [];
List<dynamic> parkingTransitTime = [];
List<dynamic> rentParkingTransitTime = [];
List<dynamic> freeParkingTransitTime = [];
List<dynamic> serviceTransitTime = [];
List<dynamic> carwashTransitTime = [];
List<dynamic> carrepairTransitTime = [];
List<dynamic> chargingTransitTime = [];
//List<dynamic> hospitalTransitTime = [];
List<FreeParking> freeParkingPlaces = [];
List<dynamic>? service = [];
List<dynamic> serviceStation = [];
List<dynamic> carWashStation = [];
List<dynamic> carRepairStation = [];
List<dynamic>? chargingStation = [];
//List<dynamic> hospital = [];
late int selectedParking;
List<double> markerDist = [];
List<double> freeMarkerDist = [];
List<double> rentParkingDist = [];
List<double> serviceStationDist = [];
List<double> carWashDist = [];
List<double> carRepairDist = [];
List<double> chargingStationDist = [];
//List<double> hospitalDist = [];
List<double> userCoords = [];
late Map<String, dynamic> confirmed_booking;
late Map<String, dynamic> registration_details;
late Map<String, dynamic> coords;
late Map<String, dynamic> place;
int bookingIndex = -1;
int vehicleIndex = 0;
}`
I am new to flutter but i tried removing void and adding Future instead
To use await, the function must return future.
Update
to