运行Geocoder.local.findAddressesFromQuery时出错

问题描述

我正在尝试使用Geocoder获取字符串地址的协调性,我的代码在ios设备上运行良好,但是当我在Android上运行它时,我会看到此错误

I/zygote  (29355): Do partial code cache collection,code=58KB,data=46KB
I/zygote  (29355): After code cache collection,code=57KB,data=46KB
I/zygote  (29355): Increasing code cache capacity to 256KB
E/flutter (29355): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(failed,Failed,null)
E/flutter (29355): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572:7)
E/flutter (29355): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161:18)
E/flutter (29355): <asynchronous suspension>
E/flutter (29355): #2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:334:12)
E/flutter (29355): #3      LocalGeocoding.findAddressesFromQuery (package:geocoder/services/local.dart:18:43)
E/flutter (29355): #4      _TextFieldAutoCompleteState.build.<anonymous closure> (package:label_national_h/Widgets/TextFieldAutoComplete.dart:33:46)
E/flutter (29355): <asynchronous suspension>
E/flutter (29355): #5      _TextFieldAutoCompleteState.build.<anonymous closure> (package:label_national_h/Widgets/TextFieldAutoComplete.dart)
E/flutter (29355): #6      _TextFieldSelectionGestureDetectorBuilder.onSingleTapUp (package:flutter/src/material/text_field.dart:107:26)
E/flutter (29355): #7      _TextSelectionGestureDetectorState._handleTapUp (package:flutter/src/widgets/text_selection.dart:1298:29)
E/flutter (29355): #8      TapGestureRecognizer.handleTapUp.<anonymous closure> (package:flutter/src/gestures/tap.dart:522:56)
E/flutter (29355): #9      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:184:24)
E/flutter (29355): #10     TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:522:11)
E/flutter (29355): #11     BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:284:5)
E/flutter (29355): #12     BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:256:7)
E/flutter (29355): #13     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:158:27)
E/flutter (29355): #14     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:224:20)
E/flutter (29355): #15     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:200:22)
E/flutter (29355): #16     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:158:7)
E/flutter (29355): #17     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:104:7)
E/flutter (29355): #18     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:88:7)
E/flutter (29355): #19     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter (29355): #20     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (29355): #21     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (29355): #22     _invoke1 (dart:ui/hooks.dart:267:10)
E/flutter (29355): #23     _dispatchPointerDataPacket (dart:ui/hooks.dart:176:5)

这是我的代码

   return TextField(
      controller: textEditController,onTap: () async {
        p = await PlacesAutocomplete.show(
            context: context,apiKey: R.Google_api_key,language: "fr",components: [Component(Component.country,"fr")]);
        textEditController.text = p.description;
        var addresses = await Geocoder.local.findAddressesFromQuery(p.description);
        schedule.UpdateListeners(addresses.first.coordinates.latitude,addresses.first.coordinates.longitude) ;
        //final double distance = await distanceBetween( addresses.first.coordinates.latitude,addresses.first.coordinates.longitude,endLatitude,endLongitude);
      },decoration: InputDecoration(
          border: InputBorder.none,hintText: 'Adresse,ex. 5 Rue Thénard Paris'),);

该地点的自动填充功能正常运行,并返回了所需的地址。

解决方法

出现此问题的原因可能很多,

  1. 负纬度或lang
  2. 在模拟器中,它可以在实际设备中引发异常,而在
  3. api的问题
  4. 有人建议使用Geocoder.google而不是Geocoder.local [Link for discussion this problem in github][1]
,

问题似乎与仿真器的配置有关,当我在另一个仿真器上尝试相同的程序时效果很好,我试图删除该仿真器并重新安装它,问题就解决了!

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...