flutter 该插件`geocoder`使用Android嵌入的弃用版本

ctzwtxfj  于 2023-10-22  发布在  Flutter
关注(0)|答案(6)|浏览(202)

当我运行pub get时,我遇到以下错误:
The plugin geocoder uses a deprecated version of the Android embedding. To avoid unexpected runtime failures, or future build failures, try to see if this plugin supports the Android V2 embedding. Otherwise, consider removing it since a future release of Flutter will remove these deprecated APIs. If you are plugin author, take a look at the docs for migrating the plugin to the V2 embedding: https://flutter.dev/go/android-plugin-migration.

jxct1oxe

jxct1oxe1#

GeoCoder软件包不适用于较新的flutter版本。但你可以用这个替代品。这是兼容较新的Flutter版本和完美的工作罚款。使用此替代方法:https://pub.dev/packages/geocode

d8tt03nd

d8tt03nd2#

使用它来修复所有错误
https://pub.dev/packages/geocoder2

import 'package:geocoder2/geocoder2.dart';

获取地址

FetchGeocoder fetchGeocoder = await Geocoder2.getAddressFromCoordinates(
        latitude: 40.714224,
        longitude: -73.961452,
        googleMapApiKey: "GOOGLE_MAP_API_KEY");
    var first = fetchGeocoder.results.first;
    print(first.formattedAddress);

获取坐标

FetchGeocoder fetchGeocoder = await Geocoder2.getCoordinatesFromAddress(
        address: "277 Bedford Ave, Brooklyn, NY 11211, USA",
        googleMapApiKey: "GOOGLE_MAP_API_KEY");
    var first = fetchGeocoder.results.first;
    print("${first.geometry.location.lat} , ${first.geometry.location.lng}");
muk1a3rh

muk1a3rh3#

这是因为最新的flutter更新版本2.5。在我的例子中,我已经通过命令flutter downgrade降级了我的flutter版本,它显示了一个降级的flutter版本的选项,它解决了我的错误。

iugsix8n

iugsix8n4#

您可以使用Geocoding插件来查找地址,而不是使用该插件:

import 'package:geocoding/geocoding.dart';

List<Placemark> placemarks = await placemarkFromCoordinates(52.2165157, 6.9437819);
ngynwnxp

ngynwnxp5#

这仅仅意味着你想要使用的软件包已经过时了,并且flutter new更新删除了这个软件包正在使用的一些功能。
快速解决方案:

  • 过时的Flutter通过运行这个在终端'Flutter酒吧过时',我不建议
  • 或使用此软件包的替代方案,并确保此替代方案是新升级的,以与您的flutter版本兼容
4szc88ey

4szc88ey6#

有一个叫做geocoding的软件包,可以实现同样的功能。请参阅。

相关问题