简体   繁体   English

带有 Flutter Google Places Auto Complete 返回错误的文本表单字段

[英]Text Form Field with Flutter Google Places Auto Complete returning error

I am building a Flutter app, and trying to add a Text Form Field with Google Places Auto Complete API, but when I try to build the application, it returns me an error, and I can't fix it.我正在构建一个 Flutter 应用程序,并尝试使用 Google Places 自动完成 API 添加一个文本表单字段,但是当我尝试构建应用程序时,它返回一个错误,我无法修复它。

I have this code:我有这个代码:

import 'package:google_maps_webservice/places.dart';
import 'package:flutter_google_places/flutter_google_places.dart';
import 'package:google_api_headers/google_api_headers.dart';
import 'dart:async';

const kGoogleApiKey = "API_KEY";
String address = '';

Future<Null> displayPrediction(Prediction p) async {
    if (p != null) {
      GoogleMapsPlaces _places = GoogleMapsPlaces(
        apiKey: kGoogleApiKey,
        apiHeaders: await GoogleApiHeaders().getHeaders(),
      );

      PlacesDetailsResponse detail =
          await _places.getDetailsByPlaceId(p.placeId);

      var placeId = p.placeId;
      double lat = detail.result.geometry.location.lat;
      double lng = detail.result.geometry.location.lng;

      var address = detail.result.formattedAddress;
    }
  }

TextFormField(
                            decoration: textInputDecoration.copyWith(
                              hintText: "Enter Company Address",
                              prefixIcon: Icon(Icons.map),
                            ),
                            onTap: () async {
                              Prediction p = await PlacesAutocomplete.show(
                                  context: context, apiKey: kGoogleApiKey);
                              displayPrediction(p);
                            },
                            validator: (val) =>
                                val.isEmpty ? 'Enter address' : null),

When I try to build the project, it returns me the following error:当我尝试构建项目时,它会返回以下错误:

../../Developer/flutter/.pub-cache/hosted/pub.dartlang.org/google_maps_webservice-0.0.19/lib/src/utils.dart:61:27: Error: The argument type 'String' can't be assigned to the parameter type 'Uri'.
 - 'Uri' is from 'dart:core'.
    return httpClient.get(url, headers: headers);

I can't find the problem我找不到问题

After having researched, I have found that problem is in google_maps_webservice-0.0.19 plugin.经过研究,我发现问题出在 google_maps_webservice-0.0.19 插件中。 In 0.0.19 version, they passed String to Uri and it throw exception.在 0.0.19 版本中,他们将 String 传递给 Uri 并引发异常。

The issue has been opened: Issue问题已打开: 问题

How to resolve this problem:如何解决此问题:

1.You can ask them to resolve this issue. 1.您可以要求他们解决此问题。

or或者

  1. You can update google_maps_webservice plugin to google_maps_webservice 0.0.20-nullsafety.3您可以将 google_maps_webservice 插件更新为 google_maps_webservice 0.0.20-nullsafety.3

or或者

  1. You can fork their repository, resolve that bugs and use your forked and resolved github repository in your project您可以分叉他们的存储库,解决错误并在您的项目中使用分叉和解决的 github 存储库

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM