我想将一些地址转换为坐标,但我得到了这个MissingPluginException错误,它是由我的locationFromAddress调用引起的,它阻止了导航器的功能。在我添加locationFromAddress之前,代码工作正常。这个错误意味着什么,我该如何修复它?错误:MissingPluginException(No implementation found for method locationFromAddress on channel flutter.baseflow.com/geocoding)
我的代码
`import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:geolocator/geolocator.dart';
import 'package:geocoding/geocoding.dart';
@OverRide
void didChangeDependencies() {
super.didChangeDependencies();
SchedulerBinding.instance.addPostFrameCallback((_) async {
userPosition = await getUserPosition();
locs = await GeocodingPlatform.instance.locationFromAddress('my address');
loc = locs.first;
if (context.mounted) {
Navigator.pushReplacementNamed(context, 'map', arguments: {
'userPosition': userPosition,
'loc': loc,
});
}
});
}
Position? userPosition;
Location? loc;
List locs = [];
@OverRide
Widget build(BuildContext context) {...}`
3条答案
按热度按时间txu3uszq1#
根据pub页面,此软件包只能与Android和IOS一起使用:https://pub.dev/packages/geocoding
这意味着没有为其他平台(Web,Windows,MacOS,Linux)执行任何实现,如果您尝试在Android或IOS以外的其他平台上使用该软件包,则会导致
MissingPluginException
错误。如果你真的想在另一个平台上使用地理定位,请尝试另一个软件包。你可以在这里找到一些他们工作的平台:https://fluttergems.dev/geolocation-utilities/pgky5nke2#
如果您添加了一个添加了本机功能的包,则需要重新运行应用程序。
完全关闭您的应用程序(不是热重新加载/热重启)并重新运行它。
disho6za3#
flutter clean
flutter pub get
运行这些命令并重新运行应用程序