Flutter 使用地理定位器的当前位置

Flutter 使用地理定位器的当前位置,flutter,Flutter,我正在尝试使用Flatter的geolocator sdk获取当前位置。但是我得到了这个错误 这是堆栈跟踪 /flutter/.pub-cache/hosted/pub.dartlang.org/geolocator-2.1.1/android/src/main/java/com/baseflow/flutter/plugin/geolocator/tasks/LastKnownLocationUsingLocationServicesTask.java:4: error: package an

我正在尝试使用Flatter的geolocator sdk获取当前位置。但是我得到了这个错误

这是堆栈跟踪

/flutter/.pub-cache/hosted/pub.dartlang.org/geolocator-2.1.1/android/src/main/java/com/baseflow/flutter/plugin/geolocator/tasks/LastKnownLocationUsingLocationServicesTask.java:4: error: package android.support.annotation does not exist
import android.support.annotation.NonNull;
                                 ^
/flutter/.pub-cache/hosted/pub.dartlang.org/geolocator-2.1.1/android/src/main/java/com/baseflow/flutter/plugin/geolocator/tasks/LocationUpdatesUsingLocationServicesTask.java:5: error: package android.support.annotation does not exist
import android.support.annotation.NonNull;
                                 ^
  symbol: class NonNull
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
4 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':geolocator:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
我正试着像这样得到这里的当前位置

    class _MapActivityState extends State<MapActivity> {

      Position currentLocation;

      @override
      void initState() {
        // TODO: implement initState
        super.initState();
       getUserLocation();
      }
        @override
  Widget build(BuildContext context) {
    return Container(
      child: MapboxMap(
        initialCameraPosition: CameraPosition(target: _center, zoom: 15),
        onMapCreated: _onMapCreated,
        myLocationEnabled: true,
      ),
    );
  }
      Future<Position> locateUser() async {
        return Geolocator()
            .getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
      }

      getUserLocation() async {
        currentLocation = await locateUser();
        print(currentLocation);
      }
    }
class\u映射活动状态扩展状态{
位置当前位置;
@凌驾
void initState(){
//TODO:实现initState
super.initState();
getUserLocation();
}
@凌驾
小部件构建(构建上下文){
返回容器(
子:MapboxMap(
初始CameraPosition:CameraPosition(目标:中心,缩放:15),
onMapCreated:_onMapCreated,
myLocationEnabled:对,
),
);
}
Future locateUser()异步{
返回地理定位器()
.getCurrentPosition(所需精度:定位精度高);
}
getUserLocation()异步{
currentLocation=等待locateUser();
打印(当前位置);
}
}

非常感谢您的帮助

打开
LastKnownLocationSingLocationServicesTask
文件,删除导致此错误的导入语句,使用
选项+输入再次导入它
,我在使用
地理定位器时看到了此问题


同样,使用LocationServicesTask打开
LocationUpdates文件,删除导入(有错误)并重新导入

此文件在哪里?如果您使用的是Android studio,您可以使用快捷方式
cmd+shift+o
并键入文件名。您需要在Android studio模块中打开此文件,您当前正在Flatter模块中打开它。请参阅。当您打开
build.gradle
文件时,它会要求您在Android studio中打开该文件进行编辑,当您打开该文件时,它会在一个新窗口中打开,您可以使用快捷方式打开
LastKnownLocationSingLocationServicesTask
并删除导入。yup。这就是我问你的原因。你昨天也帮了我