Flutter 使用地理定位器的当前位置
我正在尝试使用Flatter的geolocator sdk获取当前位置。但是我得到了这个错误 这是堆栈跟踪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
/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。这就是我问你的原因。你昨天也帮了我