未处理的异常:错误状态:调用关闭后无法添加新事件,使用 fluttter_google_places
Unhandled Exception: Bad state: Cannot add new events after calling close, on using fluttter_google_places
我每次使用 PlacesAutoComplete 小部件时都会遇到此错误。 Search/request/response 一切正常,没有崩溃或任何问题。但是日志在每次搜索时都会向我显示此错误。
我为它添加了两个包:flutter_google_places 和 google_web_services。
而且我根本不使用流。所以这对我来说是一个非常奇怪的错误。
为此我遵循了几个在线指南,任何人都可以解释我做错了什么吗?
此外,我发现这是实现地点自动完成的一种非常基本的方法。我希望您能提供有关更好地实施 google 地点搜索的建议。
Future<void> _searchWithPlacesAutoComplete() async {
Prediction _predictions = await PlacesAutocomplete.show(
context: context,
apiKey: GOOGLE_API_KEY,
onError: (response) => _showError(response),
mode: Mode.overlay,
language: "en",
components: [Component(Component.country, "uk")],
location: _currentLocation,
radius: 50,
);
if (_predictions != null) {
PlacesDetailsResponse detail =
await GoogleMapsPlaces(apiKey: GOOGLE_API_KEY)
.getDetailsByPlaceId(_predictions.placeId);
final lat = detail.result.geometry.location.lat;
final lng = detail.result.geometry.location.lng;
setState(() {
_markedPosition = new LatLng(lat, lng);
});
mapController.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: _markedPosition,
zoom: 16.0,
),
),
);
}
}
这是他们已在 git 代码中修复的插件错误。不幸的是,它还没有更新到他们当前的版本。
您可以做的是将所有 src 文件集成到它们的 github lib 文件夹中。它为我解决了这个问题。
具体步骤:
[1] 转到 https://github.com/fluttercommunity/flutter_google_places/tree/master/lib/src
[2] 将所有 dart 文件复制到我的项目中
StreamController<dynamic> subject = StreamController<dynamic>.broadcast();
我每次使用 PlacesAutoComplete 小部件时都会遇到此错误。 Search/request/response 一切正常,没有崩溃或任何问题。但是日志在每次搜索时都会向我显示此错误。
我为它添加了两个包:flutter_google_places 和 google_web_services。
而且我根本不使用流。所以这对我来说是一个非常奇怪的错误。
为此我遵循了几个在线指南,任何人都可以解释我做错了什么吗?
此外,我发现这是实现地点自动完成的一种非常基本的方法。我希望您能提供有关更好地实施 google 地点搜索的建议。
Future<void> _searchWithPlacesAutoComplete() async {
Prediction _predictions = await PlacesAutocomplete.show(
context: context,
apiKey: GOOGLE_API_KEY,
onError: (response) => _showError(response),
mode: Mode.overlay,
language: "en",
components: [Component(Component.country, "uk")],
location: _currentLocation,
radius: 50,
);
if (_predictions != null) {
PlacesDetailsResponse detail =
await GoogleMapsPlaces(apiKey: GOOGLE_API_KEY)
.getDetailsByPlaceId(_predictions.placeId);
final lat = detail.result.geometry.location.lat;
final lng = detail.result.geometry.location.lng;
setState(() {
_markedPosition = new LatLng(lat, lng);
});
mapController.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: _markedPosition,
zoom: 16.0,
),
),
);
}
}
这是他们已在 git 代码中修复的插件错误。不幸的是,它还没有更新到他们当前的版本。
您可以做的是将所有 src 文件集成到它们的 github lib 文件夹中。它为我解决了这个问题。
具体步骤:
[1] 转到 https://github.com/fluttercommunity/flutter_google_places/tree/master/lib/src [2] 将所有 dart 文件复制到我的项目中
StreamController<dynamic> subject = StreamController<dynamic>.broadcast();